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
參考網址: