internal/number: convert non-numbers to NaN
Change-Id: I378d586b72bd577aabee482372199902666dbccb
Reviewed-on: https://go-review.googlesource.com/58911
Run-TryBot: Marcel van Lohuizen <mpvl@golang.org>
Reviewed-by: Nigel Tao <nigeltao@golang.org>
diff --git a/internal/number/decimal.go b/internal/number/decimal.go
index 443c69e..a66dc13 100644
--- a/internal/number/decimal.go
+++ b/internal/number/decimal.go
@@ -332,6 +332,8 @@
case uint64:
d.ConvertInt(r, unsigned, f)
+ default:
+ d.NaN = true
// TODO:
// case string: if produced by strconv, allows for easy arbitrary pos.
// case reflect.Value:
diff --git a/internal/number/decimal_test.go b/internal/number/decimal_test.go
index 7860459..b017b39 100644
--- a/internal/number/decimal_test.go
+++ b/internal/number/decimal_test.go
@@ -284,6 +284,7 @@
{math.Inf(1), inc50, "Inf"},
{math.Inf(-1), inc50, "-Inf"},
{math.NaN(), inc50, "NaN"},
+ {"clearly not a number", scale2, "NaN"},
}
for _, tc := range testCases {
var d Decimal