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
{"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},