Javascriptで数値を切り捨てたいのですが、これは小数部分を切り取ることを意味します。
trunc(2.6 2)==
trunc(-2.6 -2)==
重いベンチマークの後、私の答えは次のとおりです。
function trunc (n) {
return ~~n;
}
// or
function trunc1 (n) {
return n | 0;
}
@ Daniel の答えに加えて、常にゼロに向かって切り捨てたい場合は、次のことができます。
function truncate(n) {
return n | 0; // bitwise operators convert operands to 32-bit integers
}
または:
function truncate(n) {
return Math[n > 0 ? "floor" : "ceil"](n);
}
どちらも、正の数と負の数の両方に対して正しい結果をもたらします。
truncate(-3.25) == -3;
truncate(3.25) == 3;
正の数の場合:
Math.floor(2.6) == 2;
負の数の場合:
Math.ceil(-2.6) == -2;
toFixed メソッドを使用して、表示する10進数の数を指定することもできます。
var num1 = new Number(3.141592);
var num2 = num1.toFixed(); // 3
var num3 = num1.toFixed(2); // 3.14
var num4 = num1.toFixed(10); // 3.1415920000
toFixedは数値を丸めることに注意してください。
var num1 = new Number(3.641592);
var num2 = num1.toFixed(); // 4
私が使う
function trunc(n){
return n - n % 1;
}
フロート範囲全体で機能し、(測定されていない)より高速である必要があるためです
function trunc(n) {
return Math[n > 0 ? "floor" : "ceil"](n);
}
以前は利用できなかった場合や、このスレッドに遭遇した他の人が利用できなかった場合は、次のように、Mathライブラリのtrunc()関数を使用できます。
let x = -201;
x /= 10;
console.log(x);
console.log(Math.trunc(x));
>>> -20.1
>>> -20