@raury

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

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

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

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

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

Похожие вопросы
21 нояб. 2024, в 19:31
500 руб./за проект
21 нояб. 2024, в 19:28
200000 руб./за проект
21 нояб. 2024, в 19:09
5000 руб./за проект