在这里,先贴一篇文章 《非科班前端人的一道送命题: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