对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 科学计数转普通计数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2021-07-22 TC如何按照不同规则来看BOM结构
2021-07-22 JAVA判断字符串是不是数字格式