convertir el número en una cadena y tirar todo después del decimal.
trunc = function(n) { return Number(String(n).replace(/\..*/, "")) }
trunc(-1.5) === -1
trunc(1.5) === 1
Editar 2013-07-10
Como ha señalado MiniTech ya segunda vista del método de cadena parece un poco excesivo. Así que la comparación de los diferentes métodos que se indican aquí y en otros lugares:
function trunc1(n){ return parseInt(n, 10); }
function trunc2(n){ return n - n % 1; }
function trunc3(n) { return Math[n > 0 ? "floor" : "ceil"](n); }
function trunc4(n) { return Number(String(n).replace(/\..*/, "")); }
function getRandomNumber() { return Math.random() * 10; }
function test(func, desc) {
var t1, t2;
var ave = 0;
for (var k = 0; k < 10; k++) {
t1 = new Date().getTime();
for (var i = 0; i < 1000000; i++) {
window[func](getRandomNumber());
}
t2 = new Date().getTime();
ave += t2 - t1;
}
console.info(desc + " => " + (ave/10));
}
test("trunc1", "parseInt");
test("trunc2", "mod");
test("trunc3", "Math");
test("trunc4", "String");
Los resultados, que pueden variar basado en el hardware, son los siguientes:
parseInt => 258.7
mod => 246.2
Math => 243.8
String => 1373.1
El método/ceil Math.floor ser marginalmente más rápido que parseInt y mod. La cadena tiene un rendimiento bajo en comparación con los otros métodos.
rodear y truncando son 2 operaciones diferentes. ¿Cuál estás tratando de hacer? –
'.substring()' es absolutamente una función en javascript. –
** EL MÉTODO ES LLAMADO '.toFixed()' ** – neaumusic