web-dev-qa-db-ja.com

javascript trunc()関数

Javascriptで数値を切り捨てたいのですが、これは小数部分を切り取ることを意味します。

trunc(2.6 2)==

trunc(-2.6 -2)==


重いベンチマークの後、私の答えは次のとおりです。

 function trunc (n) {
    return ~~n;
 }

 // or  

 function trunc1 (n) {
    return n | 0;
 }
20
Dan

@ 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;
34
CMS

正の数の場合:

Math.floor(2.6) == 2;

負の数の場合:

Math.ceil(-2.6) == -2;
13
Daniel Vassallo

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
10
Ivan

私が使う

function trunc(n){
   return n - n % 1;
}

フロート範囲全体で機能し、(測定されていない)より高速である必要があるためです

function trunc(n) {
  return Math[n > 0 ? "floor" : "ceil"](n);
}
4
Jochen

以前は利用できなかった場合や、このスレッドに遭遇した他の人が利用できなかった場合は、次のように、Mathライブラリのtrunc()関数を使用できます。

let x = -201;
x /= 10;
console.log(x);
console.log(Math.trunc(x));

>>> -20.1
>>> -20
0