Я создаю финансовый веб-сайт с помощью Flask framework и сейчас пишу для него модульные тесты. Я использую пакет Babel для форматировать денежные суммы, и я столкнулся с довольно странным поведением округления. Я ожидаю, что округление будет в большую сторону в случае 5
или, по крайней мере, будет последовательным. Но посмотрите на это:
>>> from decimal import Decimal
>>> from babel.numbers import format_currency
>>> print format_currency(Decimal('.235'), 'EUR', locale='nl_NL')
€ 0,24
>>> print format_currency(Decimal('.245'), 'EUR', locale='nl_NL')
€ 0,24
Почему это так, и что более важно; как я могу это решить?
PS: я бы предпочел округлить .245
до .25
[РЕДАКТИРОВАТЬ]
Я искал источник, который ссылается на некоторые другие фрагменты кода. Но я не могу понять, что там не так и почему кажется, что оно случайным образом округляется вверх или вниз. Кто-нибудь знает?