小数被toFixed后,比较大小出现“灵异”事件

今天,测试自己新开发的客户经理月销售额上报,其中前端javascript有个判断:上报销售额不能大于客户整体销售额。

而我的脚本在执行的时候,发生非常奇怪的事情。明明67978.68小于187978.68没错,却偏偏报大于它了。查看计算好拿来比较的值均没有问题。纳闷了。

经测试验证,原因就出在toFixed上,看起来toFixed了以后就无法正确比较出大小,为了看得更清楚,看我测试的结果:

if( Number("187978.68").toFixed(2) < Number("67978.68").toFixed(2) )
    alert("灵异,我被执行了!");
if( Number("180000.50").toFixed(2) < Number("60000.40").toFixed(2) )
    alert("灵异2,我被执行了!");
if( Number("180000").toFixed(2) < Number("60000").toFixed(2) )
    alert("灵异3,我被执行了!");
var n1 = Number("180000").toFixed(2);
var n2 = Number("60000").toFixed(2);
if( n1 < n2 )
    alert("toFixed后先赋变量,再比较,依然灵异!");
if( Number("180000.50") < Number("60000.40") )
    alert("未加toFixed,灵异未出现,我没有被执行!");

谁能给我一个更完整的结论。最好有章可循。

posted @ 2010-03-26 14:52  wala  阅读(415)  评论(0编辑  收藏  举报