diff --git a/decimal.go b/decimal.go index 954a747..b05f9aa 100644 --- a/decimal.go +++ b/decimal.go @@ -24,7 +24,7 @@ func marshalDecimal(b io.StringWriter, d float64) error { rounded := math.RoundToEven(d/TH) * TH i, _ := math.Modf(rounded) - if i < -999999999999 || i > 999999999999 { + if math.IsNaN(d) || i < -999999999999 || i > 999999999999 { return ErrInvalidDecimal } diff --git a/decimal_test.go b/decimal_test.go index c079c6d..ea23ab1 100644 --- a/decimal_test.go +++ b/decimal_test.go @@ -1,6 +1,7 @@ package httpsfv import ( + "math" "strings" "testing" ) @@ -24,6 +25,7 @@ func TestMarshalDecimal(t *testing.T) { {-9999999999999.0, "", false}, {9999999999999.0, "", false}, {1.9, "1.9", true}, + {math.NaN(), "", false}, } var b strings.Builder