Задать вопрос
@sergeyviktorovich

Почему браузер неправильно умножает числа?

вот консоль выдает такой результат,почему?
0.06*11 = 0.6599999999999999
  • Вопрос задан
  • 206 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
cannibal_corpse
@cannibal_corpse
Верстальщик руками
Эта "фишка" не только в браузере и JS, а в целом - в машинном вычислении.
Есть даже интересный сайт, посвящённый этой проблеме, вот он
Если взять, например 0.2 и 0.3, то константы 0.2 и 0.3 будут аппроксимированы до своих истинных значений. Получается, что ближайшее к 0.2 значение double оказывается больше рационального числа 0.2, но ближайшее к 0.3 значение double меньше рационального числа 0.3. Сумма 0.1 и 0.2 оказывается больше рационального числа 0.3, и следовательно не соответствует константам в коде.

0.1 + 0.2 // -> 0.30000000000000004
(0.1 + 0.2) === 0.3 // -> false
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Потому что 0.0610 в двоичной системе представляется бесконечной дробью 0.0(00011110101110000101)2. И какую бы конечную запись этой дроби вы ни взяли, она всегда будет содержать ошибку округления.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
20 янв. 2025, в 14:41
8000 руб./за проект
20 янв. 2025, в 14:23
5000 руб./за проект
20 янв. 2025, в 13:50
15000 руб./за проект