@@ -309,10 +309,10 @@ func parseFloat(b []byte) (float64, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
start := 0
|
start := 0
|
||||||
if b[0] == '+' || b[0] == '-' {
|
if cleaned[0] == '+' || cleaned[0] == '-' {
|
||||||
start = 1
|
start = 1
|
||||||
}
|
}
|
||||||
if b[start] == '0' && isDigit(b[start+1]) {
|
if cleaned[start] == '0' && isDigit(cleaned[start+1]) {
|
||||||
return 0, newDecodeError(b, "float integer part cannot have leading zeroes")
|
return 0, newDecodeError(b, "float integer part cannot have leading zeroes")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -279,6 +279,11 @@ func TestUnmarshal_Floats(t *testing.T) {
|
|||||||
input: `1.0_e2`,
|
input: `1.0_e2`,
|
||||||
err: true,
|
err: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
desc: "leading zero in positive float",
|
||||||
|
input: `+0_0.0`,
|
||||||
|
err: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
type doc struct {
|
type doc struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user