很简单的一个脚本,点93折按钮以后应该计算出260.4,但却计算出260.40000000000003,大家帮我看看什么原因啊<input name="productItemMemberPrice1" type="text" value="" id="productItemMemberPrice1" />
<input id="Button1" type="button" value="93折" onclick="productItemMemberPrice1.value=productItemMarketPrice1.value*.93" />
<input name="productItemMarketPrice1" type="text" value="280" id="productItemMarketPrice1" />

解决方案 »

  1.   


    //js语法精度的问题
    //alert(260.40000000000003.toFixed(2))
      

  2.   

    <input name="productItemMemberPrice1" type="text" value="" id="productItemMemberPrice1" />
    <input id="Button1" type="button" value="93折" onclick="productItemMemberPrice1.value=dcmMul(productItemMarketPrice1.value,0.93)" />
    <input name="productItemMarketPrice1" type="text" value="280" id="productItemMarketPrice1" />
    <script>
    function dcmMul(arg1,arg2){    var m=0,s1=arg1.toString(),s2=arg2.toString();  try{m+=s1.split(".")[1].length;}catch(e){}
       try{m+=s2.split(".")[1].length;}catch(e){}
        return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m);}
    </script>