Given
BigDecimal a = ...;
BigDecimal b = ...;
Do the following hold for all possible values of a and b?
if (a.compareTo(b) == 0)
assert a.stripTrailingZeros().equals(b.stripTrailingZeros())
if (a.compareTo(b) != 0)
assert !(a.stripTrailingZeros().equals(b.stripTrailingZeros()))
if (a.stripTrailingZeros().equals(b.stripTrailingZeros()))
assert(a.compareTo(b) == 0)
if (!(a.stripTrailingZeros().equals(b.stripTrailingZeros())))
assert(a.compareTo(b) != 0)
Or is there some edge case where the above assertions are not all true?
Note that
stripTrailingZeroscan throw anArithmeticExceptionif the resultingscaleoverflows. For example;Other than such cases, the assertion should be true, because there is only one unique
BigDecimalrepresentation of each number, that has no trailing zeroes.