如何应付商品金额的四舍五入和商品金额计算的浮点数溢出?

如何应付商品金额的四舍五入和商品金额计算的浮点数溢出?

liwenzhen 2025-02-13 最新玩具 4 次浏览 0个评论

在这里,先贴一篇文章 《非科班前端人的一道送命题:0.1+0.2 等于 0.3 吗?》

如何应付商品金额的四舍五入和商品金额计算的浮点数溢出?

答案:0.1+0.2 不等于 0.3 ,因为在 0.1+0.2 的计算过程中发生了两次精度丢失。第一次是在 0.1 和 0.2 转成双精度二进制浮点数时,由于二进制浮点数的小数位只能存储52位,导致小数点后第53位的数要进行为1则进1为0则舍去的操作,从而造成一次精度丢失。第二次在 0.1 和 0.2 转成二进制浮点数后,二进制浮点数相加的过程中,小数位相加导致小数位多出了一位,又要让第53位的数进行为1则进1为0则舍去的操作,又造成一次精度丢失。最终导致 0.1+0.2 不等于0.3 。

在电商行业,涉及到大量的商品金额的计算,自然是会存在浮点数溢出情况

同时,一般金额都是保留小数点后两位数字(末尾是0不显示),需要做四舍五入

所以,一般跟商品金额有关的数字开云(中国)都会先乘100,做四舍五入,再除以100


如何应付商品金额的四舍五入和商品金额计算的浮点数溢出?

如何应付商品金额的四舍五入和商品金额计算的浮点数溢出?

 

转载请注明来自开云网页版登录入口,本文标题:《如何应付商品金额的四舍五入和商品金额计算的浮点数溢出?》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!
Top