javaScript中parseFloat()結果精度不一致的問題

<script>ip

function changeSum(patout){
   var oldPatout = 45.69211;
   var contractFee = 50.59211
   var newPatout = 5.1;io

   var sum= parseFloat(newPatout)+parseFloat(oldPatout);
   alert(sum);
   alert(parseFloat(contractFee));function

</script>方法

結果alert(sum):爲50.5921100001 ; alert(parseFloat(contractFee)) : 爲50.5921100000;co

解決辦法:script

    第一種:四捨五入new

        Math.round(parseFloat("45.69211")+parseFloat("5.1"));
     第二種:保留幾位小數
       sum.toFixed(5); toFixed(n)中的n表明保留幾位

     第三種:擴大必定的倍數,對結果在縮小這個倍數
          var num1=parseFloat("234432.9")*1000000000000;
          var num2=parseFloat("0.2")*1000000000000;
          var num3=(num1-num2)/1000000000000;
          結果爲 234432.7

 第一種方法確定不推薦,由於會損失精度。對於第二種方法,若是可以肯定保留n位徹底夠用了,那就能夠。

相關文章
相關標籤/搜索