Skip to content

Commit 62557e7

Browse files
committed
fastfloat: properly parse +Inf values by ParseBestEffort()
Updates VictoriaMetrics/vmctl#25
1 parent ecab8fa commit 62557e7

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

fastfloat/parse.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,17 @@ func ParseBestEffort(s string) float64 {
140140
break
141141
}
142142
if i <= j {
143-
if strings.EqualFold(s[i:], "inf") {
143+
s = s[i:]
144+
if strings.HasPrefix(s, "+") {
145+
s = s[1:]
146+
}
147+
if strings.EqualFold(s, "inf") {
144148
if minus {
145149
return -inf
146150
}
147151
return inf
148152
}
149-
if strings.EqualFold(s[i:], "nan") {
153+
if strings.EqualFold(s, "nan") {
150154
return nan
151155
}
152156
return 0

fastfloat/parse_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,10 @@ func TestParseBestEffort(t *testing.T) {
190190
// inf and nan
191191
f("inf", math.Inf(1))
192192
f("-Inf", math.Inf(-1))
193+
f("+iNf", math.Inf(1))
193194
f("INF", math.Inf(1))
194195
f("nan", math.NaN())
196+
f("-nan", math.NaN())
195197
f("naN", math.NaN())
196198
f("NaN", math.NaN())
197199
}

0 commit comments

Comments
 (0)