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;
}
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;