From 2165452a37b156d154a6e2dc85495b23a4a61565 Mon Sep 17 00:00:00 2001 From: Andrew Gerrand Date: Fri, 31 May 2019 20:59:35 +1000 Subject: [PATCH] =?UTF-8?q?strconv:=20document=20handling=20of=20NaN=20and?= =?UTF-8?q?=20=C2=B1Inf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- src/strconv/atof.go | 3 +++ src/strconv/example_test.go | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/strconv/atof.go b/src/strconv/atof.go index 504b9613fb0..0903fa155ae 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 46cfd432fbf..50f6b20fee2 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 {