js计算-浮点精确度问题

出现问题 

 

0.7+0.1 本来应该等于0,8 现在确实0.799999

过程:十进制转二进制,运算后再转十进制 展示,而转化过程中 十进制的数字转化为 01 无限循环的二进制,结果也是无限循环的二进制数字,在转化成十进制,就成了结果不正确了

为了防止出现这样的情况,解决方案

方法1:

在做金额问题的时候 为了防止这种损失出现,一般会*10 /10 这样结果不变

(0.7*100 +0.1*100)/100 这样结果正确

方法2:

利用toFixed()规定小数的位数,

 

posted @ 2020-03-10 23:03  明媚下雨天  阅读(157)  评论(0编辑  收藏  举报