Skip to content

Commit 9ca3cd8

Browse files
authored
Merge pull request #5089 from sjrd/fix-striptrailingzeros
Fix #5085: Zero.stripTrailingZeros() returns BigDecimal.ZERO.
2 parents d3a5b0a + 6041bad commit 9ca3cd8

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

javalib/src/main/scala/java/math/BigDecimal.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1226,9 +1226,8 @@ class BigDecimal() extends Number with Comparable[BigDecimal] {
12261226

12271227
def stripTrailingZeros(): BigDecimal = {
12281228
if (isZero) {
1229-
// Preserve RI compatibility, so BigDecimal.equals (which checks
1230-
// value *and* scale) continues to work.
1231-
this
1229+
// As specified by the JavaDoc, we must return BigDecimal.ZERO, which has a scale of 0
1230+
BigDecimal.ZERO
12321231
} else {
12331232
val lastPow = BigTenPows.length - 1
12341233

test-suite/shared/src/test/scala/org/scalajs/testsuite/javalib/math/BigDecimalScaleOperationsTest.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,4 +287,8 @@ class BigDecimalScaleOperationsTest {
287287
val prec = aNumber.precision()
288288
assertEquals(prec, 68)
289289
}
290+
291+
@Test def testStripTrailingZeros(): Unit = {
292+
assertEquals(0, java.math.BigDecimal.valueOf(0, 9).stripTrailingZeros().scale())
293+
}
290294
}

0 commit comments

Comments
 (0)