javascript Math.truncを使用して小数点以下を切り捨てる

javascript Math.truncを使用して小数点以下を切り捨てる

javascriptで、Math.truncを使用して少数以下の切り捨てを行うサンプルを記述してます。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 103.0.5060.114

Math.trunc使い方

「Math.trunc」を使うと、少数以下を切り捨てすることが可能です。

const a = 1.4;
const b = 1.9999;

console.log( Math.trunc( a ) ); // 1
console.log( Math.trunc( b ) ); // 1

ただし、以下のように、ビット演算子を使用した切り捨て方法だと、32bitのint範囲外である「-2,147,483,647~2,147,483,647」では正しく動作しませんが

const c = 2147483648.5 | 0;

console.log(c); // -2147483648

「Math.trunc」を使用すると、正しい結果を取得することが可能です。

const d = 2147483648.5;

console.log(Math.trunc(d)); // 2147483648

その他に「parseInt」を使用する方法など色々あります。実行結果だけ、以下に記述してます。

console.log( parseInt(123.111) ); // 123
console.log( parseInt(123.999) ); // 123
console.log( parseInt(2147483648.999) );// 2147483648

console.log( 123.111 | 0 ); // 123
console.log( 123.999 | 0 ); // 123
console.log( 2147483648.999 | 0 );// -2147483648

console.log( ~~(123.111) ); // 123
console.log( ~~(123.999) ); // 123
console.log( ~~(2147483648.999) );// -2147483648

console.log( 123.111 >> 0 ); // 123
console.log( 123.999 >> 0 ); // 123
console.log( 2147483648.999 >> 0 );// -2147483648

パフォーマンスは「>>」が一番良さそうです。

実行回数:1000000回 関数名:Math.trunc 実行時間:2.00(ms)
実行回数:1000000回 関数名:parseInt 実行時間:4.80(ms)
実行回数:1000000回 関数名:|        実行時間:1.40(ms)
実行回数:1000000回 関数名:~~       実行時間:1.30(ms)
実行回数:1000000回 関数名:>>       実行時間:1.20(ms)