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表示中删除任何尾随零。 例如,从汽提尾随零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());// 去除末尾多余的0System.out.println(new BigDecimal("100.000").stripTrailingZeros().toString());// 避免输出科学计数法System.out.println(new BigDecimal("100.000").stripTrailingZeros().toPlainString());}
复制代码
输出结果
10000000000
100.000
1E+2
100
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
