javascript trunc() function

Dan picture Dan · Jan 24, 2010 · Viewed 33.5k times · Source

I want to truncate a number in javascript, that means to cut away the decimal part:

trunc ( 2.6 ) == 2

trunc (-2.6 ) == -2


After heavy benchmarking my answer is:

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

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

Answer

Christian C. Salvadó picture Christian C. Salvadó · Jan 24, 2010

As an addition to the @Daniel's answer, if you want to truncate always towards zero, you can:

function truncate(n) {
  return n | 0; // bitwise operators convert operands to 32-bit integers
}

Or:

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

Both will give you the right results for both, positive and negative numbers:

truncate(-3.25) == -3;
truncate(3.25) == 3;