需求:去除Bigdecimal小数点后的0
System.out.println( new BigDecimal("100.000").toString());
程序的输出即为: 100.000
如果我们希望去除末尾多余的0,那么我们应该这么写:
System.out.println( new BigDecimal("100.000").stripTrailingZeros().toString());
其中,stripTrailingZeros()函数就是用于去除末尾多余的0的,但是此时程序的输出为: 1E+2
是科学计数法,可能并不是我们想要的。
解决的方法很简单,如果想要避免输出科学计数法的字符串,我们要用toPlainString()函数代替toString()。如:
System.out.println( new BigDecimal("100.000").stripTrailingZeros().toPlainString());
此时程序的输出就为 100
**************************************
java api:
public BigDecimal stripTrailingZeros()
返回一个BigDecimal
,它在数字上等于此值, BigDecimal
表示中删除任何尾随零。 例如,从汽提尾随零BigDecimal
值600.0
,其具有[ BigInteger
, scale
]组件等于[6000,1],产率6E2
与[ BigInteger
, scale
]组分等于[6,-2]。 如果这个BigDecimal在数字上等于零,则返回BigDecimal.ZERO
。
结果
一个数字相等的 BigDecimal
,任何尾随零被删除。
从以下版本开始:
1.5
************************************************
代码:
public static void main(String[] args) {
// 浮点数的打印
System.out.println(new BigDecimal("10000000000").toString());
// 普通的数字字符串
System.out.println(new BigDecimal("100.000").toString());
// 去除末尾多余的0
System.out.println(new BigDecimal("100.000").stripTrailingZeros().toString());
// 避免输出科学计数法
System.out.println(new BigDecimal("100.000").stripTrailingZeros().toPlainString());
}
复制代码
输出结果
10000000000
100.000
1E+2
100