数値の丸め処理

JavaScript:
数値の丸め処理

方法:

JavaScriptで数値を丸める方法は、Math.round()Math.ceil()Math.floor()を使います:

let originalNumber = 2.567;

let roundedDown = Math.floor(originalNumber); // 2
let roundedUp = Math.ceil(originalNumber);    // 3
let rounded = Math.round(originalNumber);     // 3 (.567が.5より大きいため)

console.log(roundedDown); // 出力:2
console.log(roundedUp);   // 出力:3
console.log(rounded);     // 出力:3

特定の小数点以下の桁数に修正するには、toFixed()を使います:

let twoDecimals = originalNumber.toFixed(2); // "2.57" (文字列を返す)

console.log(twoDecimals); // 出力:"2.57"

文字列を数値に戻すには、単項プラスまたはNumber()を使います:

let numberAgain = +twoDecimals; // 2.57

console.log(numberAgain); // 出力:2.57

深掘り

数値の丸めは新しいことではありません。それは数字が存在する限り古い技術です。JavaScriptでは、Math.round()は「half up」を丸める方法を使います:分数部が0.5の場合、最も近い偶数に丸められます。

より細かい制御が必要な場合、toFixed()が適しているかもしれませんが、文字列を返すことを覚えておいてください。数値に戻すのは追加のステップかもしれませんが、数値型で作業を続けることを保証します。

代替手段?lodashのようなライブラリは、より繊細な制御のために_.round(number, [precision=0])を提供します。または、新しいIntl.NumberFormatは丸めだけでない高精度のフォーマットを提供します。

精度について言えば、JavaScriptの浮動小数点の奇妙な点に注意してください。0.1 + 0.2は厳密には0.3と等しくないのは、数値がどのように格納されているかによるものです。時には、このような浮動小数点のエラーを修正するために丸めが必要になります。

参照