Skip to content

Commit 20830cf

Browse files
committed
fastfloat: parse "infinity" in fastfloat.Parse() function
1 parent 437dac0 commit 20830cf

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

fastfloat/parse.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,9 @@ func Parse(s string) (float64, error) {
387387
if strings.HasPrefix(ss, "+") {
388388
ss = ss[1:]
389389
}
390-
if strings.EqualFold(ss, "inf") {
390+
// "infinity" is needed for OpenMetrics support.
391+
// See https://github.com/OpenObservability/OpenMetrics/blob/master/OpenMetrics.md
392+
if strings.EqualFold(ss, "inf") || strings.EqualFold(ss, "infinity") {
391393
if minus {
392394
return -inf, nil
393395
}

fastfloat/parse_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,10 @@ func TestParseSuccess(t *testing.T) {
457457
f("-Inf", math.Inf(-1))
458458
f("+iNf", math.Inf(1))
459459
f("INF", math.Inf(1))
460+
f("infinity", math.Inf(1))
461+
f("-Infinity", math.Inf(-1))
462+
f("+iNfINIty", math.Inf(1))
463+
f("INFINITY", math.Inf(1))
460464
f("nan", math.NaN())
461465
f("-nan", math.NaN())
462466
f("naN", math.NaN())

0 commit comments

Comments
 (0)