日期:2014-05-16  浏览次数:20373 次

字符串通过parseFloat函数转化 后相加出现意外數值
alert(parseFloat("7.99") + parseFloat("10")); //17.990000000000002

why??
------解决方案--------------------
应该是浮点数运算的时候,先转化为二进制,用二进制来算,结果再转回十进制
------解决方案--------------------
试了一下。改用7.98或者7.999都正常。。就是*.99会出现。。
大神快出来解释- -
------解决方案--------------------
引用:
引用:应该是浮点数运算的时候,先转化为二进制,用二进制来算,结果再转回十进制
那該怎麼解決了呢? parseFloat貌似只有一個參數。http://www.w3schools.com/jsref/jsref_parsefloat.asp


用toFixed(2) 保留两位小数
------解决方案--------------------
引用:
引用:引用:应该是浮点数运算的时候,先转化为二进制,用二进制来算,结果再转回十进制
那該怎麼解決了呢? parseFloat貌似只有一個參數。http://www.w3schools.com/jsref/jsref_parsefloat.asp

用toFixed(2) 保留两位小数
    ……

var num =  parseFloat("7.99") + parseFloat("10")
alert(num.toFixed(2))