Округление результата деления в Javascript
Я выполняю следующую операцию в Javascript:
0,0030 / 0,031
Как я могу округлить результат до произвольного числа мест? Какое максимальное число это var
проведет?
3 ответа
Современные браузеры должны поддерживать метод, называемый toFixed()
, Вот пример, взятый из Интернета:
// Example: toFixed(2) when the number has no decimal places
// It will add trailing zeros
var num = 10;
var result = num.toFixed(2); // result will equal 10.00
// Example: toFixed(3) when the number has decimal places
// It will round to the thousandths place
num = 930.9805;
result = num.toFixed(3); // result will equal 930.981
toPrecision()
может также быть полезным для вас, на этой странице есть еще один отличный пример.
Для старых браузеров вы можете сделать это вручную, используя Math.round
, Math.round()
округлить до ближайшего целого числа. Чтобы достичь десятичной точности, вам нужно немного манипулировать своими числами:
- Умножьте исходное число на 10^x
(10 на степень x), где x - это количество десятичных разрядов, которое вы хотите.
- Применить Math.round()
- Разделите на 10 ^ х
Чтобы округлить 5.11111111 до трех знаков после запятой, вы должны сделать это:
var result=Math.round(5.111111*1000)/1000 //returns 5.111
Наибольшее положительное конечное значение типа числа составляет приблизительно 1.7976931348623157 * 10308. ECMAScript-262 3-е изд. также определяет Number.MAX_VALUE
который держит это значение.
Чтобы ответить на вопросы Яга:
- Используйте метод toFixed(). Осторожно; он возвращает строку, а не число.
- Пятнадцать, может быть, шестнадцать. Если вы попытаетесь получить больше, дополнительные цифры будут либо нулями, либо мусором. Попробуйте отформатировать что-то вроде 1/3, чтобы понять, что я имею в виду.