JavaScriptで浮動小数点数を扱う方法

本記事では、JavaScriptにおける浮動小数点数の扱い方を紹介します。JavaScriptでは、数値のほとんどが浮動小数点数(Number型)として処理され、計算や表示時に特有の挙動を示すことがあります。丸め処理や特定のメソッドを用いた数値操作の方法について紹介します。

固定小数点表記で数値を整形する方法

数値を固定小数点表記で整形する際は、toFixed()メソッドを使用します。このメソッドは、指定した桁数(digits)に従って数値を四捨五入し、小数点以下を固定した形で出力します。

例えば、(123.456).toFixed(2)と指定すると、123.46が返されます。これは、小数点以下2桁に四捨五入されているためです。

console.log(Number(123.446).toFixed(1)); // "123.4"
console.log(Number(123.45).toFixed(1));  // "123.5"
console.log(Number(123).toFixed(1));     // "123.0"

浮動小数点数を整数にする方法

小数点以下を繰り上げる方法

小数点以下を繰り上げるには、Math.ceil()メソッドを使用します。Math.ceil()は、引数として与えた数値以上の最小の整数を返します。そのため、正の数の場合は小数点以下を繰り上げますが、負の数の場合は、絶対値が小さい方向に丸められるため、注意が必要です。

console.log(Math.ceil(1.5));  // 2
console.log(Math.ceil(1.4));  // 2
console.log(Math.ceil(2.1));  // 3
console.log(Math.ceil(0.5));  // 1
console.log(Math.ceil(0.4));  // 1
console.log(Math.ceil(-5.4)); // -5
console.log(Math.ceil(-5.5)); // -5
console.log(Math.ceil(-0.1)); // -0
console.log(Math.ceil(0));    // 0

また、Math.ceil(-0.1)などと指定すると、-0が出力されるので、注意しましょう。

小数点以下を切り捨てる方法

小数点以下を切り捨てるには、Math.floor()を使用します。Math.floor()は、引数として与えた数値以下の最大の整数を返します。そのため、正の数の場合は小数点以下が切り捨てられますが、負の数の場合は絶対値が大きい方向に丸められる点に注意が必要です。

console.log(Math.floor(1.5));  // 1
console.log(Math.floor(1.4));  // 1
console.log(Math.floor(2.1));  // 2
console.log(Math.floor(0.5));  // 0
console.log(Math.floor(0.4));  // 0
console.log(Math.floor(-5.4)); // -6
console.log(Math.floor(-5.5)); // -6
console.log(Math.floor(-0.1)); // -1
console.log(Math.floor(0));    // 0

四捨五入する方法

小数点以下を四捨五入するには、Math.round()を使用します。Math.round()は、小数点以下を四捨五入して最も近い整数を返します。ただし、-0.1のような負の小数値は、四捨五入されて-0と表示されるため、注意が必要です。

console.log(Math.round(1.5));  // 2
console.log(Math.round(1.4));  // 1
console.log(Math.round(2.1));  // 2
console.log(Math.round(0.5));  // 1
console.log(Math.round(0.4));  // 0
console.log(Math.round(-5.4)); // -5
console.log(Math.round(-5.5)); // -5
console.log(Math.round(-0.1)); // -0
console.log(Math.round(0));    // 0
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です