Как округлить десятичное число без использования глобального контекста? - PullRequest
0 голосов
/ 26 февраля 2019

Использование python 3.6 https://docs.python.org/3.6/library/decimal.html

Я вижу, что мы можем указать округление и точность, но это только глобально, установив контекст.

Как я могу сделать это для конкретного экземпляра Decimal?

Примерно так: псевдокод:

myNumber = Decimal(1.101901)
roundedNumber = myNumber.toFixed(2, ROUND_DOWN)
# expected result ==> 1.10
roundedNumber = myNumber.toFixed(2, ROUND_UP)
# expected result ==> 1.11

Таким образом, я могу анализировать каждое число с желаемой точностью округления.

1 Ответ

0 голосов
/ 26 февраля 2019

Используйте метод Decimal.quantize .

from decimal import *

myNumber = Decimal(1.101901)
roundedNumber = myNumber.quantize(Decimal('1.00'), rounding=ROUND_DOWN) # 1.10
roundedNumber = myNumber.quantize(Decimal('1.00'), rounding=ROUND_UP)   # 1.11
...