JavaScript で数値を小数点以下 2 桁に丸める

Harshit Jindal 2023年10月12日
  1. JavaScript で .toFixed() メソッドを使用して数値を小数点以下 2 桁に丸める
  2. JavaScript で Math.round() 関数を使用して数値を小数点以下 2 桁に丸める
  3. JavaScript で二重丸めを使って数値を小数点以下 2 桁に丸める
  4. JavaScript でカスタム関数を使用して数値を小数点以下 2 桁に丸める
JavaScript で数値を小数点以下 2 桁に丸める

このチュートリアルでは、JavaScript で数値を小数点以下 2 桁に丸める方法を紹介します。

JavaScript で .toFixed() メソッドを使用して数値を小数点以下 2 桁に丸める

数値に .toFixed() メソッドを適用し、引数として小数点以下の桁数を渡します。

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

この方法では正確な結果が得られない場合があり、これよりも優れた方法があります。数が 1.2 の場合、1.20 と表示されます。2.005 のような数値を指定すると、2.01 ではなく 2.000 が返されます。

JavaScript で Math.round() 関数を使用して数値を小数点以下 2 桁に丸める

数値を取得し、非常に小さい数値 Number.EPSILON を追加して、数値が正確に丸められるようにします。次に、四捨五入する前に数値に 100 を掛けて、小数点以下 2 桁のみを抽出します。最後に、数値を 100 で割って、小数点以下 2 桁までを取得します。

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

出力:

212421434.53

このメソッドは .toFixed() よりも改善されていますが、それでも最善の解決策ではなく、1.005 を正しく丸めることもできません。

JavaScript で二重丸めを使って数値を小数点以下 2 桁に丸める

このメソッドでは、.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 でカスタム関数を使用して数値を小数点以下 2 桁に丸める

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