1
0
mirror of https://github.com/golang/go synced 2024-11-19 14:24:47 -07:00

strconv: handle [-+]Infinity in atof

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
This commit is contained in:
Brad Fitzpatrick 2011-07-11 07:25:45 -07:00
parent d366c36945
commit f19b24a182
2 changed files with 9 additions and 4 deletions

View 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

View 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},