int 100 отступ 2 то сделать Decimal 1.00
Перевести инт в строку
Для чего?
Буду хранить деньги в int, пользователю нужно красиво показывать
Чтобы красиво показывать нужен string, а не decimal. А деньги всегда храни в int.
str(x)[:-2] + '.' + str(x)[-2:]
Не. Это плохо.
Зачем вообще хранить деньги в интах? Точность же нужна. Храни во флоатах
Ты специально вредные советы раздаёшь или по незнанию?
эм... флоаты? точность? в одном предложении?
Флоаты наоборот неточные. Их используют только когда слишком длинная цифра например итд. Короче для денег и точности в этом плане только десимал
Децимал сам по себе точности не добавит
Как считаешь decimal работает?
Насколько я знаю он максимально приближает твою цифру к обыкновенной дроби и так хранит
Очень плохой совет. Лучше децималы.
Ну так можно хранить в самых маленьких единицах...
>>> 0.1 + 0.2 == 0.3 False У меня всё
А зачем тебе ==
Окей >>> 0.3 - 0.1 >= 0.2 False Вот незадача то
Эпсилон добавляй при сравнении
Отличная идея. Какие потом костыли ещё прикрутим чтобы у клиента банка деньги со счёта не пропадали (или наоборот не появлялись из воздуха)?
Обсуждают сегодня