icw82
@icw82
Веб-разработчик

По какой причине JS результатом к выражению 1.4 + 0.2 возвращает 1.5999999999999999?

По какой причине JS результатом к выражению
1.4 + 0.2
возвращает
1.5999999999999999?
  • Вопрос задан
  • 380 просмотров
Решения вопроса 2
khipster
@khipster
Это называется неточные вычисления. Всё дело в том, что в стандарте IEEE 754 на число выделяется ровно 8 байт(=64 бита), не больше и не меньше. Например число 0.1 (одна десятая) записывается легко в десятичном формате. Но в двоичной системе счисления это бесконечная дробь, так как единица на десять в двоичной системе так просто не делится. Вообщем складываются неточности, надо округлять.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
По причине того, что запись чисел 1.4 и 0.2 в двоичной системе бесконечна, соответственно любое их конечное представление на компьютере стандартным вещественным типом будет содержать ошибку.
1.410 = 1.(0110)2
0.210 = 0.(0011)2
1.(0110)2+0.(0011)2 = 1.(1001)2
Это зависит не от языка программирования, а только от конкретного представления чисел.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@balamyt92
; select * from users; --
можно так хитрить если критично это все
cb6501574b2d431f820b672c997321c1.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы