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

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

1
2
3
4
5
6
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类型。

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
     * 对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 科学计数转普通计数 

posted @   信铁寒胜  阅读(1575)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2021-07-22 TC如何按照不同规则来看BOM结构
2021-07-22 JAVA判断字符串是不是数字格式
点击右上角即可分享
微信分享提示