看看这个http://expert.csdn.net/Expert/topic/2069/2069264.xml?temp=3.251284E-02

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/2053/2053403.xml?temp=.2704431JS做浮点运算不精确可以先变为整数相乘后,再除以移位数function multi(p1,p2){
    var t1=0,t2=0,r1,r2;
    try{t1=p1.toString().split(".")[1].length}catch(e){}
    try{t2=p2.toString().split(".")[1].length}catch(e){}
    with(Math){
    r1=p1*pow(10,t1)
    r2=p2*pow(10,t2)
    return ((r1*r2)/pow(10,t2+t1));
    }
    }
    alert(multi(70.0555, 7));========================
    如果是两个都是实数,那为什么要错呢?奇怪
    如alert(multi(70.0555, 7.998));
    <script>
    function Number.prototype.Fixed(num){
    with(Math){
    var m=pow(10,Number(num))
    return round(this*m)/m;
    }
    }
    alert(c(56.10,23.12).Fixed(2));
    function c(n1,n2){
    var m=0,s1=n1.toString(),s2=n2.toString();
    m=s1.split(".")[1].length
    m=s2.split(".")[1].length
    return (n1-n2).Fixed(m)//高版本可以用(n1-n2).toFixed(m)
    }
    </script>==============
    这个如何使用?
      

  2.   

    我还是觉得很奇怪
    mPrice=multi(mPrice,parseFloat(document.DataForm.TaxRate.value)+100)/100;
    跟这个mPrice=multi(mPrice,parseFloat(document.DataForm.TaxRate.value/100+1);怎么后者会不对?