Задать вопрос
Lizard-108
@Lizard-108
Ящерица

Js как то странно считает числа, почему?

Вбил в консоль 4.9 - .3, получил результат 4.6000000000000005.
Вопрос - это с какого вообще фига?
f4501b9997.jpg
  • Вопрос задан
  • 510 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
@bromzh
Drugs-driven development
С такого, что нужно понимать, как эти числа вообще хранятся в памяти. Тогда и придёт осознание, что всё правильно.
Для понимания же можно почитать стандарт хранения чисел, там все ответы на вопросы вида "чо за хрень с числами?".
Ну и такое не только в JS так, а почти везде.
Ответ написан
Комментировать
afishr
@afishr
make const not var
Неточные вычисления в JS
Всё дело в том, что в стандарте IEEE 754 на число выделяется ровно 8 байт(=64 бита), не больше и не меньше.
Число 0.1 (одна десятая) записывается просто в десятичном формате. Но в двоичной системе счисления это бесконечная дробь, так как единица на десять в двоичной системе так просто не делится. Также бесконечной дробью является 0.2 (=2/10).
Двоичное значение бесконечных дробей хранится только до определенного знака, поэтому возникает неточность.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AloneCoder
@AloneCoder
[object Object]
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы