Здесь мы приведем один из возможных вариантов решения потенциальных проблем со сравнением десятичных чисел, которые представляются в виде двоичных.
Пример:
0.1 + 0.2 !== 0.3
0.1 + 0.2: 0.30000000000000004
function compare(x, y) {
var abs = Math.abs;
return abs(x - y) < Number.EPSILON * Math.max(abs(x), abs(y));
}
compare(0.1 + 0.2, 0.3); // true
Нужно добавить, что это проблема не именно JS, а более глубокого уровня, и она существует в большенстве языков.
Javascript используется только как пример решения проблемы.