<SCRIPT LANGUAGE=javascript> 
function aa(a,b,c){
if (a < 0 )
                                   { return (Math.abs(a)-b-c);}
else { return 0; }
}
alert(aa(-152044.13,144701.30,7342.83));
</SCRIPT> 
以上代码运行后计算结果应等于0才对,但结果是1.6370904631912708e-11
为什么?
怎样解决这个问题?
谢谢

解决方案 »

  1.   

    javascrt不适合作浮点数的精确计算。一般转换成整数再运算
      

  2.   

    javascrt不适合作浮点数的精确计算。一般转换成整数再运算请问怎样转换啊,我不精javascrt帮我举个例子。
      

  3.   

    比如
    <SCRIPT LANGUAGE=javascript> 
    function aa(a,b,c){
    if (a < 0 )
    {
    return (Math.abs(a*1000)-b*1000-c*1000)/1000;}
    else {
    return 0;
    }
    }
    alert(aa(-152044.13,144701.30,7342.83));
    </SCRIPT> 网上也有很多文章