Number.EPSILON
Наименьшая разница между 1 и следующим числом — для сравнения дробных чисел.
Доступно с: ES2015
Синтаксис
Number.EPSILONВозвращаемое значение
numberОчень маленькое число, примерно 2.2e-16.
Примеры
Почему 0.1 + 0.2 не равно 0.3:
console.log(0.1 + 0.2);
console.log(0.1 + 0.2 === 0.3);Результат:
0.30000000000000004
falseСравнение с допуском:
const equal = (a, b) => Math.abs(a - b) < Number.EPSILON;
console.log(equal(0.1 + 0.2, 0.3));Результат:
trueПримечания
Дробные числа хранятся в двоичном виде, и многие десятичные дроби в нём неточны. Поэтому дробные числа сравнивают с допуском, а деньги хранят в центах — целыми числами.
См. также
- Number.prototype.toFixed — Форматирует число с заданным количеством знаков после запятой.
- Math.abs — Возвращает модуль числа — его значение без знака.
- Math.round — Округляет число до ближайшего целого.
Вопросы и ответы по теме
В учебнике
- Числа — Числа в JavaScript — целые и дробные, округление, объект Math, toFixed и особые значения Infinity и NaN.