Следующая ошибка JavaScript застала меня врасплох:
console.log(1 - 0.1 - 0.1 === 1 - 0.2); // true
console.log(1 - 0.2 - 0.2 === 1 - 0.4); // false
когда я начал тестировать математику, используя тестовый фреймворк Mocha.
Есть ли в Мокко стандартный способ сравнения чисел с незначительной десятичной разницей?
Я ищу решение, в котором можно указать точность сравнения в процентах.
UPDATE
Так что в основном мне нужно реализовать такую функцию:
/**
* @param a
* @param b
* @param accuracy - precision percentage.
* @returns
* 0, if the difference is within the accuracy.
* -1, if a < b
* 1, if a > b
*/
function compare(a, b, accuracy) {
}
Сложность в том, что accuracy
- это процентное значение.
Примеры:
compare(1.001, 1.002, 0.1) => 0
compare(12345, 12346, 0.1) => 0