在工作中遇到这种精度问题,例如:
大多数语言在处理浮点数的时候都会遇到精度问题,但是在JS里似乎特别严重,再来看一个例子
结果居然是592.800000000001,当然加法之类的也会有这个问题
那这是js的错误吗?
当然不是,你的电脑做着正确的二进制浮点运算,但问题是你输入的是十进制的数,电脑以二进制运算,这两者并不是总是转化那么好的,有时候会得到正确的结果,但有时候就不那么幸运了
你输入两个十进制数,转化为二进制运算过后再转化回来,在转化过程中自然会有损失了
但一般的损失往往在乘除运算中比较多,而JS在简单的加减法里也会出现这类问题,你也看到了,这个误差也是非常小的,但是却是不该出现的
1. 解决办法
1.1 扩大倍数法:有多少位小数就扩大10的n次方
1.2 四舍五入法:
2. js封装四则运算
极客教程
分享编程知识
关注,每天推送好内容!
领取专属 10元无门槛券
私享最新 技术干货