commit f4c5a97b2ce16ce14e1d30875b7cecf1f1f4f7a8
parent 71c0966e1a7260957ced1f424f1bc2219207eda1
Author: Francois Parquet <francois.parquet@gmail.com>
Date: Thu, 2 Aug 2018 15:30:03 +0800
Merge pull request #55 from lorenzo-stoakes/master
Add support for negative floats with 0 significand
Diffstat:
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/decode_number_float.go b/decode_number_float.go
@@ -53,7 +53,7 @@ func (dec *Decoder) getFloatNegative() (float64, error) {
// look for following numbers
for ; dec.cursor < dec.length || dec.read(); dec.cursor++ {
switch dec.data[dec.cursor] {
- case '1', '2', '3', '4', '5', '6', '7', '8', '9':
+ case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
return dec.getFloat()
default:
return 0, dec.raiseInvalidJSONErr(dec.cursor)
@@ -203,7 +203,7 @@ func (dec *Decoder) getFloat32Negative() (float32, error) {
// look for following numbers
for ; dec.cursor < dec.length || dec.read(); dec.cursor++ {
switch dec.data[dec.cursor] {
- case '1', '2', '3', '4', '5', '6', '7', '8', '9':
+ case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
return dec.getFloat32()
default:
return 0, dec.raiseInvalidJSONErr(dec.cursor)
diff --git a/decode_number_float_test.go b/decode_number_float_test.go
@@ -195,6 +195,11 @@ func TestDecoderFloat64(t *testing.T) {
expectedResult: -788.76,
},
{
+ name: "basic-float3",
+ json: "-0.1234",
+ expectedResult: -0.1234,
+ },
+ {
name: "basic-exp-too-big",
json: "1e10000000000 ",
expectedResult: 0,
@@ -539,6 +544,11 @@ func TestDecoderFloat32(t *testing.T) {
expectedResult: -788.76,
},
{
+ name: "basic-float3",
+ json: "-0.1234",
+ expectedResult: -0.1234,
+ },
+ {
name: "error",
json: "83zez4",
expectedResult: 0,