Округление результата деления в 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() округлить до ближайшего целого числа. Чтобы достичь десятичной точности, вам нужно немного манипулировать своими числами:

  1. Умножьте исходное число на 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 который держит это значение.

Чтобы ответить на вопросы Яга:

  1. Используйте метод toFixed(). Осторожно; он возвращает строку, а не число.
  2. Пятнадцать, может быть, шестнадцать. Если вы попытаетесь получить больше, дополнительные цифры будут либо нулями, либо мусором. Попробуйте отформатировать что-то вроде 1/3, чтобы понять, что я имею в виду.
Другие вопросы по тегам