]> Cypherpunks repositories - gostls13.git/commitdiff
strconv: handle [-+]Infinity in atof
authorBrad Fitzpatrick <bradfitz@golang.org>
Mon, 11 Jul 2011 14:25:45 +0000 (07:25 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Mon, 11 Jul 2011 14:25:45 +0000 (07:25 -0700)
This is the form as returned by Postgres, as well
as JavaScript.

I've tried and failed to find authorative docs online
about the proper string serialization, if any.

R=golang-dev, gri, r, r, rsc
CC=golang-dev
https://golang.org/cl/4650077

src/pkg/strconv/atof.go
src/pkg/strconv/atof_test.go

index a91e8bfa4aaeb0d3ce81ac3bade6c861ff1c2918..38b38053ce033d2c44851679014c7784e98656cb 100644 (file)
@@ -43,11 +43,13 @@ func special(s string) (f float64, ok bool) {
        switch {
        case equalIgnoreCase(s, "nan"):
                return math.NaN(), true
-       case equalIgnoreCase(s, "-inf"):
+       case equalIgnoreCase(s, "-inf"),
+               equalIgnoreCase(s, "-infinity"):
                return math.Inf(-1), true
-       case equalIgnoreCase(s, "+inf"):
-               return math.Inf(1), true
-       case equalIgnoreCase(s, "inf"):
+       case equalIgnoreCase(s, "+inf"),
+               equalIgnoreCase(s, "+infinity"),
+               equalIgnoreCase(s, "inf"),
+               equalIgnoreCase(s, "infinity"):
                return math.Inf(1), true
        }
        return
index 6d8396ee73baa6e088f9491d82dbbcc41b23e2e1..0fdd0ea982baa1257bf20722b9c0b52fb34f3bad 100644 (file)
@@ -47,6 +47,9 @@ var atoftests = []atofTest{
        {"inf", "+Inf", nil},
        {"-Inf", "-Inf", nil},
        {"+INF", "+Inf", nil},
+       {"-Infinity", "-Inf", nil},
+       {"+INFINITY", "+Inf", nil},
+       {"Infinity", "+Inf", nil},
 
        // largest float64
        {"1.7976931348623157e308", "1.7976931348623157e+308", nil},