🧮
一日一処: JavaScriptの小数点以下切り捨て最短コード
小数点以下の切り捨て
それぞれの言語には、小数点以下の切り捨て処理が存在します。基本的には、関数やメソッドによる処理が一般的であり、RoundやFloorなど使われることがあります。
JavaScriptでの最短を実現
ここでは、通常のいわゆる小数点の切り捨て処理は書きません。知らない方は、ぜひしっかりとした方法を調べてください。
const num = 20.24
console.log(~~num) // 20
これが私の知りうるJavaScriptでの最短の小数点以下切り捨ての方法になります。
~(チルダ・ビット否定)は、2の補数を算出する演算子となります。この記号での数値の変換は、32ビット以内で、整数部分のみを2の補数に変換します。さらに、~を二回重ねることで、2の補数に変換された数字が、もとに戻ります。ただし、32ビットを超えた部分や小数点以下の数字は破棄されたままになるため、上記のように、小数点以下が破棄されることとなります。
注意
非常に簡単で短いコードにはなりますが、大きな数字を扱う可能性がある場合は、用いるべきではありません。前述の通り、処理上、32ビット整数に変換されたり、小数点以下が破棄されるため、内容によっては、適切な結果を得られない場合もあるため、使用には注意してください。
Discussion