java里也会出现这种问题,不知道是为什么!帮你顶,顺便学习学习!

解决方案 »

  1.   

    to micker(希望下一代别再贫穷) :java里是什么情况?
      

  2.   

    我是这样处理的:Math.round((105.01+102.32)*100)/100
      

  3.   

    这是乘法的版本:
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <script language=javascript1.2>
    function test()
    {
    var temp = 100*326.03;
    alert("temp="+temp);
    return ;
    }
    </script>
    </HEAD><BODY onload=javascript:test();>
    </BODY>
    </HTML>
      

  4.   

    只能找到这个了:
    http://tech.ccidnet.com/pub/article/c1115_a120997_p1.html
      

  5.   

    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <script language=javascript1.2>
    function test()
    {
    var temp = 105.01+102.32;
    temp = temp.toFixed(2);
    alert("temp="+temp);
    return ;
    }
    </script>
    </HEAD><BODY onload=javascript:test();>
    </BODY>
    </HTML>
      

  6.   

    我知道楼上的方法可以解决问题。当然IE5.0下还的自己写一个toFixed()
    可是不知道为什么有些数有这些问题,而有些又没有.
      

  7.   

    to  楼主
     
    浮点数运算的时候,必须先转化为二进制。而你的第一个数字105.01转化为二进制后是一个无限循环小数1101001.00 <00001010001111010111> .......<>里面是循环节,有无限多个,在计算机存储的时候只能舍入。所以浮点数运算一般是近似的。只要小数点后面的位数不大,可以乘以100转化为整数。虽然浮点数运算有误差,但一般误差极微,采用四舍五入也可