функция trunc () javascript - PullRequest
       16

функция trunc () javascript

20 голосов
/ 24 января 2010

Я хочу обрезать число в javascript, что означает вырезать десятичную часть:

усечение (2,6) == 2

усечение (-2,6) == -2


После тщательного тестирования мой ответ:

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

 // or  

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

Ответы [ 4 ]

34 голосов
/ 24 января 2010

В дополнение к ответу @ 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;
13 голосов
/ 24 января 2010

Для положительных чисел:

Math.floor(2.6) == 2;

Для отрицательных чисел:

Math.ceil(-2.6) == -2;
10 голосов
/ 10 октября 2011

Вы можете использовать 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 голосов
/ 02 июля 2012

Я использую

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

, поскольку он работает во всем диапазоне с плавающей запятой и должен (не измеряться) быть быстрее, чем

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