kosyachniy
@kosyachniy
Python BackEnd, Web FullStack

Можете объяснить логику Python умножения чисел?

>>> 0.4 * 0.4
0.16000000000000003


И как можно сделать, чтобы выводило нормально? (есть ли такие функции в math, ...)
  • Вопрос задан
  • 419 просмотров
Решения вопроса 3
longclaps
@longclaps
Ответ написан
Комментировать
Shshzik
@Shshzik
Начинающий
Если тебе нужно считать что-то с полной точностью, я бы посоветовал использовать Decimal.
Ссылка на документацию
Ответ написан
Комментировать
@Mercury13
Программист на «си с крестами» и не только
Так устроены float и double: они двоичные, и в них точно представляются только числа вида k·2−n. 0,4 не таково, у него в знаменателе пятёрка.
Для большинства инженерных расчётов и игр это нормально. А вот если надо так, как подсчитал бы бухгалтер на бумаге (например, пишете калькулятор) — работайте с десятичным длинным.

UPD. Наконец нашёл ту статью, какую хотел.
www.delphikingdom.com/asp/viewitem.asp?catalogid=1217
www.delphikingdom.com/asp/viewitem.asp?catalogid=374
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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