double转long引发的一次线上故障

   日期:2024-12-27    作者:paint01 移动:http://3jjewl.riyuangf.com/mobile/quote/64221.html

问题:部分客户订单页面展示异常问题

double转long引发的一次线上故障

原因:double类型转成long类型,精度损失导致线上的故障。

下面为出现问题的具体代码

我们看下面会分别输出什么结果:

double类型占用64位

科学计数法:拿十进制举例子:1.23x10的9次方:1.23就是尾数,9就是指数

所以double类型表示的数的范围是比long类型要大,但是,由于浮点数是基于科学计数法的,因此它们不能精确地表示某些值,例如非常大或非常小的数字。因为尾数位只用了52bit来表示。

禁止直接将double类型转成long类型,对于一些高精度计算推荐使用BigDecimal

BigDecimal是Java中提供的一种高精度数字类型,它可以表示任意精度的十进制数值,计算过程中不会有精度损失。


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号