Функция javascript trunc()
Я хочу усечь число в javascript, что означает вырезать десятичную часть:
trunc (2.6) == 2
trunc (-2.6) == -2
После тяжелого бенчмаркинга мой ответ:
function trunc (n) {
return ~~n;
}
// or
function trunc1 (n) {
return n | 0;
}
Ответы
Ответ 1
В качестве дополнения к @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;
Ответ 2
Для положительных чисел:
Math.floor(2.6) == 2;
Для отрицательных чисел:
Math.ceil(-2.6) == -2;
Ответ 3
Вы можете использовать toFixed метод, который также позволяет указать количество десятичных чисел, которое вы хотите показать:
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
Ответ 4
Я использую
function trunc(n){
return n - n % 1;
}
потому что он работает по всему диапазону с плавающей запятой и должен (не измерен) быть быстрее, чем
function trunc(n) {
return Math[n > 0 ? "floor" : "ceil"](n);
}