JavaScript - 小数点以下の切り捨てはtrunc()がおすすめ

JavaScriptで小数点以下を切り捨てる場合は、 ES2015で新しく追加されたtrunc()メソッドがおすすめです。

ES2015以前ではfloor()を用いていた方が多いと思います。

ですが、floor()は単純な切り捨てではないため、 負数の場合はceil()メソッドを用いるなどの配慮が必要でした。

一方、新しく追加されてた trunc()メソッドは、 単純な小数点以下の切り捨て(整数部分の取り出し)なので、 負数を考慮する必要がありません。

trunc()による小数点以下の切り捨て

次のサンプルコードは、trunc()を使って小数点以下を切り捨てています。

単純な小数点以下の切り捨てなので、負数の場合も整数部分を取り出してくれます。


// 正数
console.log(Math.trunc(3.25)); // -3
console.log(Math.trunc(3.79)); // -3

// 負数
console.log(Math.trunc(-3.25)); // -3
console.log(Math.trunc(-3.79)); // -3

ES2015以前の floor()メソッドの場合

floor()メソッドの場合は、単純な小数点以下の切り捨てではないため、 次のサンプルコードのように負数がうまく取得できません。

関連記事: 小数点以下の切り捨て floor() は負数に注意


// 正数
console.log(Math.floor(3.25)); // -3
console.log(Math.floor(3.79)); // -3

// 負数
console.log(Math.floor(-3.25)); // -4
console.log(Math.floor(-3.79)); // -4

負数の場合、ceil()メソッドを使うとうまく取得できます。


// 負数
console.log(Math.ceil(-3.25)); // -3
console.log(Math.ceil(-3.79)); // -3

このように、小数点以下の切り捨てはfloor()を使うよりも、trunc()メソッドを使った方が簡単なので、ES2015の環境が利用できる場合は trunc()メソッドがおすすめです。