在 JavaScript 中將數字四捨五入到小數點後兩位

Harshit Jindal 2023年10月12日
  1. 使用 .toFixed() 方法將 JavaScript 中的數字四捨五入到小數點後兩位
  2. 在 JavaScript 中使用 Math.round() 函式將數字四捨五入到小數點後兩位
  3. 在 JavaScript 中使用雙舍入將數字四捨五入到小數點後兩位
  4. 在 JavaScript 中使用自定義函式將數字四捨五入到小數點後兩位
在 JavaScript 中將數字四捨五入到小數點後兩位

本教程介紹瞭如何在 JavaScript 中將數字四捨五入到小數點後兩位。

使用 .toFixed() 方法將 JavaScript 中的數字四捨五入到小數點後兩位

我們對數字應用 .toFixed() 方法,並將小數點後的位數作為引數。

var numb = 12312214.124124124;
numb = numb.toFixed(2);

在某些情況下,此方法無法獲得準確的結果,並且有比該方法更好的方法。如果數字四捨五入為 1.2,則它將顯示為 1.20。如果給出的數字是 2.005,它將返回 2.000,而不是 2.01

在 JavaScript 中使用 Math.round() 函式將數字四捨五入到小數點後兩位

我們將數字加上一個非常小的數字 Number.EPSILON,以確保數字的精確舍入。然後,我們在舍入前將數字乘以 100,以僅提取小數點後兩位。最後,我們將數字除以 100,以獲得最多 2 個小數位。

var numb = 212421434.533423131231;
var rounded = Math.round((numb + Number.EPSILON) * 100) / 100;
console.log(rounded);

輸出:

212421434.53

儘管此方法比 .toFixed() 有所改進,但它仍然不是最佳解決方案,也無法正確舍入 1.005

在 JavaScript 中使用雙舍入將數字四捨五入到小數點後兩位

在此方法中,我們使用 .toPrecision() 方法來消除在單次舍入中的中間計算過程中引入的浮點舍入誤差。

function round(num) {
  var m = Number((Math.abs(num) * 100).toPrecision(15));
  return Math.round(m) / 100 * Math.sign(num);
}

console.log(round(1.005));

輸出:

1.01

在 JavaScript 中使用自定義函式將數字四捨五入到小數點後兩位

function roundToTwo(num) {
  return +(Math.round(num + 'e+2') + 'e-2');
}
console.log(roundToTwo(2.005));

這個自定義函式可以處理所有的極端情況,該函式可以很好地處理小數點後的小數(如 1.005)。

作者: Harshit Jindal
Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn

相關文章 - JavaScript Number