BigDecimal 中 stripTrailingZeros() 以及 toPlainString() 用法
1. stripTrailingZeros()
作用:去除 BigDecimal 数值末尾所有无意义的 0。
示例:
new BigDecimal("23.0").stripTrailingZeros() // → 23
new BigDecimal("23.00").stripTrailingZeros() // → 23
new BigDecimal("23.10").stripTrailingZeros() // → 23.1
new BigDecimal("23.1000").stripTrailingZeros() // → 23.1
new BigDecimal("0.00").stripTrailingZeros() // → 0
注意:这个方法返回的是新的 BigDecimal 对象,原对象不变(BigDecimal 是不可变类)。
2. toPlainString()
作用:将 BigDecimal 转换为普通十进制数字字符串,避免科学计数法。
为什么要用 toPlainString() 而不是 toString()?
| 方法 | 结果 | 说明 |
|---|---|---|
toString() |
可能输出 1E+2 |
当数值很大或很小时,会使用科学计数法 |
toPlainString() |
总是输出 100 |
永远输出普通数字格式 |
对比示例:
BigDecimal big = new BigDecimal("100000000000000000000");
big.toString() // → "1E+20" (科学计数法)
big.toPlainString() // → "100000000000000000000" (完整数字)
对于小数也同样:
BigDecimal decimal = new BigDecimal("0.0000000001");
decimal.toString() // → "1E-10"
decimal.toPlainString() // → "0.0000000001"

浙公网安备 33010602011771号