0

Перепробовал уже кучу всего, но в любом случае вместо многих чисел, например 0,32 выводит 0,32000000000000006

Пробовал

math.modf(x)
whole = int(n // 1)
dec = x - int(x)
x%1
fiendy
  • 1

1 Answers1

1

Там, где важно идеально точно работать с десятичными дробями (например, в финансовых вычислениях), никогда не используют числа с плавающей точкой - для этого есть специальный модуль decimal:

from decimal import Decimal

x = 1.32 d = Decimal('1.32')

print( x % 1 ) // число с плавающей точкой даёт неточный результат print( d % 1 ) // число в формате Decimal даёт точный результат

https://docs.python.org/3/library/decimal.html

Xander
  • 20,499