其他分享
首页 > 其他分享> > 对BigDecimal进行精度处理,将科学计数法转为普通表示法

对BigDecimal进行精度处理,将科学计数法转为普通表示法

作者:互联网

BigDecimal数据乘0后的数据为什么是以科学计数法的形式显示?急求解

public static void main(String[] args) {
  BigDecimal bd = new BigDecimal(0.0001);
  BigDecimal bd1 = new BigDecimal(0);
  System.out.println(bd.multiply(bd1));
}
显示是结果:0E-66

答:因为0.0001用66位表示

 

解决办法:

首先我们需要了解BigDecimal提供的一些方法

stripTrailingZeros()去除末尾多余的0。

toPlainString()将科学计数法转换为普通的计数方式

有了这两个方法我们就可以完美的对数据库转为实体对象的BigDecimal类型字段进行处理。

在实体类中定义数据库中BigDecimal的字段为String类型。

/**
     * 对BigDecimal进行小数点后3位精度处理,并转换成字符串
     * @param fusionNum
     * @return
     */
	public String getBigDecimalStatisticalProcess(String fusionNum){
			BigDecimal bigDecimal = new BigDecimal(fusionNum);
			BigDecimal scale = bigDecimal.setScale(3, BigDecimal.ROUND_HALF_UP);
			return scale.stripTrailingZeros().toPlainString();	
		}	
————————————————
版权声明:本文为CSDN博主「有趣的灵魂_不世俗的心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42324471/article/details/96882383

  参考:BigDecimal数据乘0后的数据为什么是以科学计数法的形式显示?急求解-CSDN社区

       对BigDecimal进行精度处理,将科学计数法转为普通表示法_有趣的灵魂_不世俗的心的博客-CSDN博客_bigdecimal 科学计数转普通计数 

标签:String,fusionNum,计数法,表示法,CSDN,new,BigDecimal
来源: https://www.cnblogs.com/wwssgg/p/16504283.html