Bigdecimal转string取整

需求:去除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表示中删除任何尾随零。 例如,从汽提尾随零BigDecimal600.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());// 去除末尾多余的0System.out.println(new BigDecimal("100.000").stripTrailingZeros().toString());// 避免输出科学计数法System.out.println(new BigDecimal("100.000").stripTrailingZeros().toPlainString());}
复制代码

输出结果

10000000000
100.000
1E+2
100

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部