From: Andrew Gerrand Date: Fri, 31 May 2019 10:59:35 +0000 (+1000) Subject: strconv: document handling of NaN and ±Inf X-Git-Tag: go1.13beta1~168 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=2165452a37b156d154a6e2dc85495b23a4a61565;p=gostls13.git strconv: document handling of NaN and ±Inf In addition to the example that was added in 203b80ab, mention these special cases in the doc comment. This change also adjusts the example to include "+Inf", as it was not otherwise mentioned that the plus symbol may be present. Fix #30990 Change-Id: I97d66f4aff6a17a6ccc0ee2e7f32e39ae91ae454 Reviewed-on: https://go-review.googlesource.com/c/go/+/179738 Reviewed-by: Alex Miasoedov Reviewed-by: Benny Siegert Run-TryBot: Benny Siegert TryBot-Result: Gobot Gobot --- diff --git a/src/strconv/atof.go b/src/strconv/atof.go index 504b9613fb..0903fa155a 100644 --- a/src/strconv/atof.go +++ b/src/strconv/atof.go @@ -654,6 +654,9 @@ func atof64(s string) (f float64, err error) { // If s is syntactically well-formed but is more than 1/2 ULP // away from the largest floating point number of the given size, // ParseFloat returns f = ±Inf, err.Err = ErrRange. +// +// ParseFloat recognizes the strings "NaN", "+Inf", and "-Inf" as their +// respective special floating point values. It ignores case when matching. func ParseFloat(s string, bitSize int) (float64, error) { if !underscoreOK(s) { return 0, syntaxError(fnParseFloat, s) diff --git a/src/strconv/example_test.go b/src/strconv/example_test.go index 46cfd432fb..50f6b20fee 100644 --- a/src/strconv/example_test.go +++ b/src/strconv/example_test.go @@ -232,7 +232,7 @@ func ExampleParseFloat() { if s, err := strconv.ParseFloat("inf", 32); err == nil { fmt.Printf("%T, %v\n", s, s) } - if s, err := strconv.ParseFloat("Inf", 32); err == nil { + if s, err := strconv.ParseFloat("+Inf", 32); err == nil { fmt.Printf("%T, %v\n", s, s) } if s, err := strconv.ParseFloat("-Inf", 32); err == nil {