LINUX.ORG.RU

>>> int(round(-10090.96*100))
-1009096
AlexVR ★★★★★
()

Используй какой-нибудь decimal или fixed point.

hateyoufeel ★★★★★
()

Самый простой способ через округление:

int(round(a, 2))
`2` в данном случае — степень округления. Подбирай по вкусу. К int по возможности, лучше вообще не приводить.

Если тебе нужно работать с десятичными числами и дробями, то лучше всего подойдет тип Decimal.

>>> from decimal import Decimal
>>> a = Decimal('2.7')
>>> a + Decimal('123.45')
Decimal('126.15')

Также можно попробовать Fraction.

destabilizer
()

Спасибо, похоже decimal то что мне нужно. Проблема возникла при попытке чтения-редактирования-сохранения бинарных файлов созданых COBOL-софтом по формату типа

44 NUMFIELD PIC S9(9)V9(2) COMP .

mikron
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.