字符串通过parseFloat函数转化 后相加出现意外數值
alert(parseFloat("7.99") + parseFloat("10")); //17.990000000000002
why??
...全文
请发表友善的回复…
发表回复
盼盼栗子 2015-05-08
- 打赏
- 举报
num.toFixed(2):2表示小数点后的数字位数,这里倒是可以解决。
那如果是:var num = parseFloat("7.9999") + parseFloat("10")
因為parseFloat函數里面的数值是客服输入的,num.toFixed(2)的話数值就截断了。[/quote]
toFixed(2)是取小数点后两位。。。我也遇到这种问题。他会显示018.00,前面多一个0,不知道是什么鬼!!!
lufengsn 2012-12-13
- 打赏
- 举报
num.toFixed(2):2表示小数点后的数字位数,这里倒是可以解决。
那如果是:var num = parseFloat("7.9999") + parseFloat("10")
因為parseFloat函數里面的数值是客服输入的,num.toFixed(2)的話数值就截断了。
wd358851347 2012-12-13
- 打赏
- 举报
var num = parseFloat("7.99") + parseFloat("10")
alert(num.toFixed(2))
wd358851347 2012-12-13
- 打赏
- 举报
用toFixed(2) 保留两位小数
jeff_jiang 2012-12-13
- 打赏
- 举报
试了一下。改用7.98或者7.999都正常。。就是*.99会出现。。
大神快出来解释- -
lufengsn 2012-12-13
- 打赏
- 举报
那該怎麼解決了呢? parseFloat貌似只有一個參數。http://www.w3schools.com/jsref/jsref_parsefloat.asp
wd358851347 2012-12-13
- 打赏
- 举报
应该是浮点数运算的时候,先转化为二进制,用二进制来算,结果再转回十进制