我是靠谱客的博主 超帅高跟鞋,最近开发中收集的这篇文章主要介绍bigdecimal去除末尾多余的0及stripTrailingZeros()科学计数法解决,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
BigDecimal是处理高精度的浮点数运算的常用的一个类
当需要将BigDecimal中保存的浮点数值打印出来,特别是在页面上显示的时候,就有可能遇到预想之外的科学技术法表示的问题。
一般直接使用 BigDecimal.toString()方法即可以完成浮点数的打印。
如:
System.out.println( new BigDecimal("10000000000").toString());
但是,toString()方法输出的字符串并不能保证不是科学计数法。
不过在日常的使用中,用toString()方法输出的就是普通的数字字符串而非科学计数法。
直接这么写:
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
/**
* 科学计数法去除末尾0输出测试
*/
@Test
public void removeBigDecimalZeroTest() {
BigDecimal bigDecimal = new BigDecimal("100.00");
BigDecimal bigDecimal1 = new BigDecimal("100.00");
// true
System.out.println(bigDecimal.toString().equals(bigDecimal1.toString()));
// 输出科学计数法 1E+2
System.out.println(bigDecimal.stripTrailingZeros());
// 输出科学计数法字符串 1E+2
System.out.println(bigDecimal.stripTrailingZeros().toString());
// 输出去除末尾多余的0科学计数法字符串:输出100
System.out.println(bigDecimal.stripTrailingZeros().toPlainString());
// 输出 100.00
System.out.println(bigDecimal.toPlainString());
}
最后
以上就是超帅高跟鞋为你收集整理的bigdecimal去除末尾多余的0及stripTrailingZeros()科学计数法解决的全部内容,希望文章能够帮你解决bigdecimal去除末尾多余的0及stripTrailingZeros()科学计数法解决所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复