@@ -324,7 +324,7 @@ func (dec *Decoder) getFloat32() (float32, error) {
324324 continue
325325 case '.' :
326326 // we get part before decimal as integer
327- beforeDecimal := dec .atoi32 (start , end )
327+ beforeDecimal := dec .atoi64 (start , end )
328328 // then we get part after decimal as integer
329329 start = j + 1
330330 // get number after the decimal point
@@ -341,14 +341,14 @@ func (dec *Decoder) getFloat32() (float32, error) {
341341 continue
342342 } else if (c == 'e' || c == 'E' ) && j < i - 1 {
343343 // we get the number before decimal
344- var afterDecimal int32
344+ var afterDecimal int64
345345 expI := end - start + 2
346346 // if exp is too long, it means number is too long, just truncate the number
347347 if expI >= 12 || expI < 0 {
348348 expI = 10
349- afterDecimal = dec .atoi32 (start , start + expI - 2 )
349+ afterDecimal = dec .atoi64 (start , start + expI - 2 )
350350 } else {
351- afterDecimal = dec .atoi32 (start , end )
351+ afterDecimal = dec .atoi64 (start , end )
352352 }
353353 dec .cursor = i + 1
354354 pow := pow10uint64 [expI ]
@@ -377,23 +377,23 @@ func (dec *Decoder) getFloat32() (float32, error) {
377377 }
378378 // then we add both integers
379379 // then we divide the number by the power found
380- var afterDecimal int32
380+ var afterDecimal int64
381381 expI := end - start + 2
382382 // if exp is too long, it means number is too long, just truncate the number
383383 if expI >= 12 || expI < 0 {
384384 expI = 10
385- afterDecimal = dec .atoi32 (start , start + expI - 2 )
385+ afterDecimal = dec .atoi64 (start , start + expI - 2 )
386386 } else {
387387 // then we add both integers
388388 // then we divide the number by the power found
389- afterDecimal = dec .atoi32 (start , end )
389+ afterDecimal = dec .atoi64 (start , end )
390390 }
391391 pow := pow10uint64 [expI ]
392392 return float32 (beforeDecimal + afterDecimal ) / float32 (pow ), nil
393393 case 'e' , 'E' :
394394 dec .cursor = j + 1
395395 // we get part before decimal as integer
396- beforeDecimal := uint32 ( dec .atoi32 (start , end ) )
396+ beforeDecimal := dec .atoi64 (start , end )
397397 // get exponent
398398 exp , err := dec .getExponent ()
399399 if err != nil {
@@ -410,12 +410,12 @@ func (dec *Decoder) getFloat32() (float32, error) {
410410 return float32 (beforeDecimal ) * float32 (pow10uint64 [pExp ]), nil
411411 case ' ' , '\n' , '\t' , '\r' , ',' , '}' , ']' : // does not have decimal
412412 dec .cursor = j
413- return float32 (dec .atoi32 (start , end )), nil
413+ return float32 (dec .atoi64 (start , end )), nil
414414 }
415415 // invalid json we expect numbers, dot (single one), comma, or spaces
416416 return 0 , dec .raiseInvalidJSONErr (dec .cursor )
417417 }
418- return float32 (dec .atoi32 (start , end )), nil
418+ return float32 (dec .atoi64 (start , end )), nil
419419}
420420
421421// Add Values functions
0 commit comments