Java BigDecimal与科学计数法(转String)的问题

BigDecimal是处理高精度的浮点数运算的经常使用的一个类java

当须要将BigDecimal中保存的浮点数值打印出来,特别是在页面上显示的时候,就有可能遇到预想以外的科学技术法表示的问题。函数

通常直接使用 BigDecimal.toString()方法便可以完成浮点数的打印。可是,toString()方法输出的字符串并不能保证不是科学计数法。测试

好比直接这么写:  code

System.out.println( new BigDecimal("0.000000000000").toString());

程序的输出结果为:  blog

0E-12

这是咱们不但愿出现的结果。ip

正确的写法:ci

 System.out.println( new BigDecimal("0.000000000000").toPlainString());

程序输出的结果为:字符串

0.000000000000

若是咱们但愿去除末尾多余的0,那么咱们应该这么写:class

 System.out.println( new BigDecimal("0.000000000000").stripTrailingZeros().toPlainString());

其中,stripTrailingZeros()函数就是用于去除末尾多余的0的程序

程序输出的结果为:

0

测试截图:

相关文章
相关标签/搜索