Skip to content

Commit 437dac0

Browse files
committed
fastfloat: support parsing "infinity" strings
This is needed for OpenMetrics - see https://github.com/OpenObservability/OpenMetrics/blob/master/OpenMetrics.md#abnf
1 parent b9b2668 commit 437dac0

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
@@ -237,7 +237,9 @@ func ParseBestEffort(s string) float64 {
237237
if strings.HasPrefix(s, "+") {
238238
s = s[1:]
239239
}
240-
if strings.EqualFold(s, "inf") {
240+
// "infinity" is needed for OpenMetrics support.
241+
// See https://github.com/OpenObservability/OpenMetrics/blob/master/OpenMetrics.md
242+
if strings.EqualFold(s, "inf") || strings.EqualFold(s, "infinity") {
241243
if minus {
242244
return -inf
243245
}

fastfloat/parse_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,10 @@ func TestParseBestEffort(t *testing.T) {
308308
f("-Inf", math.Inf(-1))
309309
f("+iNf", math.Inf(1))
310310
f("INF", math.Inf(1))
311+
f("infinity", math.Inf(1))
312+
f("-Infinity", math.Inf(-1))
313+
f("+iNfINIty", math.Inf(1))
314+
f("INFINITY", math.Inf(1))
311315
f("nan", math.NaN())
312316
f("-nan", math.NaN())
313317
f("naN", math.NaN())

0 commit comments

Comments
 (0)