Как я могу определить, является ли число слишком большим (вызовет ошибки округления при выполнении математики) в JavaScript.
Например, у меня есть функция, которая форматирует проценты. Если он не может правильно отформатировать переданное значение, я хочу, чтобы оно возвращало значение точно так, как оно было передано.
function formatPercent(x, decimals) {
var n = parseFloat(x); // Parse (string or number)
if ($.isNumeric(n) === false) {
return x; // Return original if not a number
} else {
return n.toFixed(decimals) + '%'; // Return formatted string
}
};
alert(formatPercent(276403573577891842, 2)); // returns 276403573577891840.00%
Поскольку форматирование такого огромного числа является краеугольным камнем и не ожидается, я бы предпочел просто вернуть число в том виде, в котором оно было передано. Каков предел до того, как начнутся ошибки округления, и как я могу их проверить?
Обновление:
Что такое Наибольшее целочисленное значение JavaScript, к которому число может перейти без потери точности? говорит, что точность работает до +/- 9007199254740992. Я тестирую, чтобы убедиться, что это все, что мне нужно проверить, чтобы безопасно ошибиться и вернуть переданное в значение без изменений.