@raury

Почему разный результат в вычислениях?

Python 3.8.2
int(14949283383840498 / 5262) * 27115 # = 77033412951888085
14949283383840498 / 5262 * 27115 # = 7.703341295188808e+16 = 77033412951888080

Разница получается на 5 единиц. Я так понимаю это из-за формата IEEE 754?
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
dollar
@dollar
Делай добро и бросай его в воду.
Да, из-за формата IEEE 754. Этой ошибке уже 100 лет в обед.

Попробуйте вот это:
print(0.1 + 0.2 == 0.3)
Ответом будет False.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
adugin
@adugin Куратор тега Python
Это погрешность формата float. Для точных значений используйте decimal.Decimal()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 02:11
5000 руб./за проект
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект