BigDecimal 中 stripTrailingZeros() 以及 toPlainString() 用法

1. stripTrailingZeros()

作用:去除 BigDecimal 数值末尾所有无意义的 0

示例

java
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 永远输出普通数字格式

对比示例

java
BigDecimal big = new BigDecimal("100000000000000000000");

big.toString()        // → "1E+20" (科学计数法)
big.toPlainString()   // → "100000000000000000000" (完整数字)

对于小数也同样:

java
BigDecimal decimal = new BigDecimal("0.0000000001");
decimal.toString()        // → "1E-10"
decimal.toPlainString()   // → "0.0000000001"
posted @ 2026-08-13 16:28  小路亚  阅读(11)  评论(0)    收藏  举报