js中計算后結果如何保留小數點后N位


1、使用 Math.toFixed() 函數

1)方法介紹

toFixed() 方法可以將數字轉換為字符串,並指定小數點后保留幾位。如果小數實際位數不夠指定的位數,不足的部分會補 0。所有主要瀏覽器都支持 toFixed() 方法。

toFixed() 使用的是銀行家舍入規則:四舍六入五取偶(又稱四舍六入五留雙)

2)銀行家舍入法:
四舍六入五考慮,五后非零就進一,五后為零看奇偶,五前為偶應舍去,五前為奇要進一

3)使用實例

 

 使用toFixed()函數,有可能會出現精度問題,可以考慮到用Math.round()函數

2、使用Math.round()函數

   //獲取一個給定值和小數位數的值
   //value: 給定值,n :小數位數
   var NumRound = function (value, n) {
         //取某個數的平方,如: Math.pow(10,2):100
          return Math.round(value*Math.pow(10,n))/Math.pow(10,n);
   }

調用實例:

  console.log(NumRound(5/4,2));   //1.25
  console.log(NumRound(0.125,2));//0.13
  console.log(NumRound(5,2));   //5

當是整數時,沒有在后面補零,如上面的5,返回還是5

3、使用自定義函數

     //獲取一個給定值和小數位數的值,value: 給定值,n :小數位數
    var NumRoundtoFormat = function (x,n) {
                var f_x = parseFloat(x);
                if (isNaN(f_x)) {
                    alert("傳遞參數不是數字!");
                    return false;
                }
                var f_x = Math.round(x * Math.pow(10, n)) / Math.pow(10, n);
                var s_x = f_x.toString();
                var pos_decimal = s_x.indexOf('.');
                if (pos_decimal < 0) {
                    pos_decimal = s_x.length;
                    s_x += '.';
                }
                while (s_x.length <= pos_decimal + n) {
                    s_x += '0';
                }
                return s_x;
            }

調用實例:

   console.log(NumRoundtoFormat(3.1245,3));  //3.125
   console.log(NumRoundtoFormat(2.152,2));//2.15
   console.log(NumRoundtoFormat(6,2));  //6.00

參考網址:

https://www.cnblogs.com/NazLee/p/11646023.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM