Ответ 1
Просто...
Math.round(quantity);
... если вы хотите округлить 1.7
до 2
. Если нет, используйте Math.floor
для 1.7
до 1
.
ok Я знаю, что это, наверное, очень просто, но я барахтаюсь. У меня есть ряд переменных, которые имеют десятичную точку и несколько нулей. Как убрать переменную так, чтобы она начиналась с 1.000 до 1? Не думайте, что это важно, но числа генерируются из файла xml, который я захватываю с помощью jquery, например...
var quantity = $("QTY",this).text();
Заранее благодарим за помощь!
Просто...
Math.round(quantity);
... если вы хотите округлить 1.7
до 2
. Если нет, используйте Math.floor
для 1.7
до 1
.
использовать parseInt();
parseInt("1.25");//returns 1
parseInt("1.85");//returns 1
parseInt(1.25);//returns 1
parseInt(1.85);//returns 1
Используйте number = ~~number
Это самая быстрая замена Math.floor()
parseInt - самый медленный метод math.floor является вторым самым медленным методом.
более быстрые методы, не перечисленные здесь:
var myInt = 1.85 | 0; myInt = 1;
var myInt = 1.85 → 0; myInt = 1;
Тесты скорости, выполненные здесь: http://jsperf.com/math-floor-vs-math-round-vs-parseint/2
использовать Math.trunc() он делает именно то, что вы просите. Он разделяет десятичное число
Для этого вам не нужен jQuery.
Вы можете использовать parseInt просто отлично. На странице:
document.write(parseInt("10.33") + "<br />"); // 10
Для округления чисел до ближайшего Integer вы можете использовать Math.round()
следующим образом:
Math.round("1.000"); // Will produce 1
Math.round(123.4234); // Will produce 123
Вот еще один хороший пример:
Я часто использую Math.round
и toLocateString
для преобразования чисел, содержащих десятичные знаки, в более читаемую строку с тысячами разделителей:
var myNumberAsString = "1234567.890123" // "1234567.890123"
var myNumber = Math.round(0.0 + myNumberAsString); // 1234568
return myNumber.toLocaleString(); // "1,234,568"
Я считаю это полезным при загрузке десятичных значений, например, в веб-службу JSON, и их нужно отображать в более дружественном формате на веб-странице (когда, конечно, мне не нужно отображать все десятичные знаки).
Более быстрый и эффективный способ - использовать битовые операторы JavaScript bitwise operators, например:
function stripDecimals(n) {
return n | 0;
}
// examples:
stripDecimals(23.245); // => 23
stripDecimals(100.015020); // => 100
|
(оператор OR) будет обрабатывать числа как 32-битные (двоичные 0s
и 1s
), после чего будет возвращаться нужный результат в зависимости от операндов, которые в этом регистр приведет к целому числу, удаленному из всех десятичных разрядов.
Я предлагаю вам использовать что-то под названием Math.trunc()
... укажите свой номер в скобках. Причина, по которой я не предлагаю вам использовать Math.round()
, заключается в том, что он может изменить целую часть вашего десятичного числа, чего не захотят некоторые люди, хотя вы можете использовать Math.round()
, если знаете, что хотите получить ближайшее целое число.