Вариант решения проблемы сравнения десятичных чисел в JavaScript

2020-02-19

Здесь мы приведем один из возможных вариантов решения потенциальных проблем со сравнением десятичных чисел, которые представляются в виде двоичных.

Пример:
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 используется только как пример решения проблемы.



Добавить комментарий