toPlainString():返回不带指数字段的此 BigDecimal 的字符串表示形式
stripTrailingZeros():返回一个BigDecimal,它在数值上等于这一个,但表示形式移除所有尾部零
Java BigDecimal 如何去掉末尾多余的 0 呢?
BigDecimal 原生提供了stripTrailingZeros() 方法可以实现去掉末尾的 0。
如果你在这里直接使用 然后使用 toString() 将会转换为科学计数法输出。
/**
* To StripTrailingZeros
*/
@Test
public void bigDecimalStripTrailingZerosTest() {
BigDecimal bigNumber = new BigDecimal("2707000000000");
// apply StripTrailingZeros function
logger.info("{}", bigNumber.toString());
logger.info("{}", bigNumber.stripTrailingZeros().toString());
logger.info("{}", bigNumber.stripTrailingZeros().toPlainString());
}
2020/02/25 14:00:19.271 [main] INFO c.ossez.maths.BigDecimalDemoUnitTest - 2707000000000
2020/02/25 14:00:19.275 [main] INFO c.ossez.maths.BigDecimalDemoUnitTest - 2.707E+12
2020/02/25 14:00:19.275 [main] INFO c.ossez.maths.BigDecimalDemoUnitTest - 2707000000000
stripTrailingZeros()
,将会转换为科学计数法输出,如果你不希望用科学计数法输出的话,那么你可以使用 toPlainString()
进行全字符输出。
public class Test {
public static void main(String[] args) {
BigDecimal a1=new BigDecimal("1000.123344");
BigDecimal a2=new BigDecimal("9.011110000");
System.out.println(a1.toPlainString());
System.out.println(a2.stripTrailingZeros());
}
}