JavaScript:为什么100*9.8不等于98
来源:百度知道 编辑:UC知道 时间:2024/06/09 13:49:16
为什么在javascript里面,100*9.8不等于98,而出现了好多小数位数。计算结果是这样的:100*98=980.0000000000001
谢谢·!
上面写错了,应该是:100*9.8=980.0000000000001 我想问的是为什么后面会有这么多小数呢?而不是980
呼叫:kanerry有没有办法解决?
回复:栽培者,我想最好保留两位小数,因为是产品的价格
问题已经解决:numObj.toFixed([fractionDigits]) ---> Number(10*9.8).toFixed(2)
谢谢·!
上面写错了,应该是:100*9.8=980.0000000000001 我想问的是为什么后面会有这么多小数呢?而不是980
呼叫:kanerry有没有办法解决?
回复:栽培者,我想最好保留两位小数,因为是产品的价格
问题已经解决:numObj.toFixed([fractionDigits]) ---> Number(10*9.8).toFixed(2)
float型数存储时只是一个近似数
无法精确的表示小数
如果你算出来是979.9999999999999也是正常的
javascript估计没办法,也只能用近似
题外话:(做广告)
.net中有decimal类型,也就是高精度十进制
decimal a=(decimal)(100*9.8);
得出a就是980
没有后面一大堆东西
100*9.8=980
没错啊??
100*0.98 才=98吧?
你可以用 Math.floor 来将它转为整数。
alert(Math.floor(100*9.8))