我做以下操作
MathContext context = new MathContext(7, RoundingMode.HALF_UP);
BigDecimal roundedValue = new BigDecimal(value, context);
// Limit decimal places
try {
roundedValue = roundedValue.setScale(decimalPlaces, RoundingMode.HALF_UP);
} catch (NegativeArraySizeException e) {
throw new IllegalArgumentException("Invalid count of decimal places.");
}
roundedValue = roundedValue.stripTrailingZeros();
String returnValue = roundedValue.toPlainString();
如果输入值为“-0.000987654321”(=值),则返回值为“-0.001”(=返回值),这是可以的。
如果输入值现在是“-0.0000987654321”,则返回“-0.0001”,这也是可以的。
但是,当输入值现在为“-0.00000987654321”时,返回“0.0000”而不是“0”,这是不正确的。问题出在哪里?为什么在这种情况下尾随的零没有被删除?