Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

JavaScript. Каким образом он так вычисляет??

Языки программированияJavascript
Кирилл Сергеевич
  · 1,2 K
Веб-разработчик, любитель истории, космоса и всего, что связано с наукой.  · 17 февр 2020

Смотря что вы имеете в виду под "так". Если вы про вычисления чисел с плавающей точкой, то это проблема не только JS, но и почти любого языка программирования.

Дело в том, что в компьютере мы не можем представить десятичную дробь в том виде, в котором мы с вами ее понимаем и видим. Для компьютера, который использует двоичную логику, эти значения хранятся в виде аж трех значений: знака, порядка и мантиссы. Соответственно, при сложении этих двух чисел появляется некая погрешность вычисления, которая во многих языках попросту отбрасывается.

Во многих языках программирования есть такое понятие, как машинный ноль или epsilon - некое значение, где отличие чисел считается несущественным и числа считаются равными. То есть сравнение происходит так Math.abs(a - b) < 0.00000001.

Очень простое объяснение, почему так происходит есть в руководстве по плавающим точкам. (eng)

Более сложное на хабре.