File tree Expand file tree Collapse file tree 1 file changed +8
-19
lines changed
jsoniter-scala-core/src/main/scala/com/github/plokhotnyuk/jsoniter_scala/core Expand file tree Collapse file tree 1 file changed +8
-19
lines changed Original file line number Diff line number Diff line change @@ -1873,16 +1873,10 @@ final class JsonWriter private[jsoniter_scala](
18731873 }
18741874 dmIsTrailingZeros &= (s & 0x780000000L) == 0 // test if all reminders of divisions by 10 are zeros
18751875 if (dmIsTrailingZeros && even) {
1876- while ((decimalNotation || dp >= 100 ) && {
1877- p = dm * 3435973837L
1878- (p & 0x780000000L) == 0 // test if reminder of division by 10 is zero
1879- }) {
1880- dp = (dp * 3435973837L >> 35 ).toInt // divide positive int by 10
1881- dm = (p >> 35 ).toInt // divide positive int by 10
1882- dvIsTrailingZeros &= lastRemovedDigit == 0
1883- val newDv = (dv * 3435973837L >> 35 ).toInt // divide positive int by 10
1884- lastRemovedDigit = dv - newDv * 10
1885- dv = newDv
1876+ while ((decimalNotation || dv >= 99 ) && (p & 0x780000000L) == 0 ) { // test if reminder of division by 10 is zero
1877+ dv = (p >> 35 ).toInt // divide positive int by 10
1878+ p = dv * 3435973837L
1879+ lastRemovedDigit = 0 // disable rounding up
18861880 len -= 1
18871881 }
18881882 }
@@ -2075,16 +2069,11 @@ final class JsonWriter private[jsoniter_scala](
20752069 len -= 1
20762070 }
20772071 if (dmIsTrailingZeros && even) {
2078- while ((decimalNotation || dp >= 100 ) && {
2079- newDm = dm / 10
2080- newDm * 10 == dm
2081- }) {
2082- dp /= 10
2072+ while ((decimalNotation || dv >= 99 ) && newDm * 10 == dm) {
2073+ dv /= 10
20832074 dm = newDm
2084- dvIsTrailingZeros &= lastRemovedDigit == 0
2085- val newDv = dv / 10
2086- lastRemovedDigit = dv - newDv * 10
2087- dv = newDv
2075+ newDm = dv
2076+ lastRemovedDigit = 0 // disable rounding up
20882077 len -= 1
20892078 }
20902079 }
You can’t perform that action at this time.
0 commit comments