In [1]:
from decimal import Decimal, ROUND_HALF_UP, ROUND_HALF_EVEN
In [2]:
print(Decimal(0.05))
In [3]:
print(type(Decimal(0.05)))
In [4]:
print(Decimal(0.5))
In [5]:
print(Decimal('0.05'))
In [6]:
f = 123.456
In [7]:
print(Decimal(str(f)).quantize(Decimal('0'), rounding=ROUND_HALF_UP))
In [8]:
print(Decimal(str(f)).quantize(Decimal('0.1'), rounding=ROUND_HALF_UP))
In [9]:
print(Decimal(str(f)).quantize(Decimal('0.01'), rounding=ROUND_HALF_UP))
In [10]:
print('0.4 =>', Decimal(str(0.4)).quantize(Decimal('0'), rounding=ROUND_HALF_UP))
print('0.5 =>', Decimal(str(0.5)).quantize(Decimal('0'), rounding=ROUND_HALF_UP))
print('0.6 =>', Decimal(str(0.6)).quantize(Decimal('0'), rounding=ROUND_HALF_UP))
In [11]:
print('0.05 =>', round(0.05, 1))
print('0.15 =>', round(0.15, 1))
print('0.25 =>', round(0.25, 1))
print('0.35 =>', round(0.35, 1))
print('0.45 =>', round(0.45, 1))
In [12]:
print('0.05 =>', Decimal(0.05).quantize(Decimal('0.1'), rounding=ROUND_HALF_EVEN))
print('0.15 =>', Decimal(0.15).quantize(Decimal('0.1'), rounding=ROUND_HALF_EVEN))
print('0.25 =>', Decimal(0.25).quantize(Decimal('0.1'), rounding=ROUND_HALF_EVEN))
print('0.35 =>', Decimal(0.35).quantize(Decimal('0.1'), rounding=ROUND_HALF_EVEN))
print('0.45 =>', Decimal(0.45).quantize(Decimal('0.1'), rounding=ROUND_HALF_EVEN))
In [13]:
print('0.05 =>', Decimal(str(0.05)).quantize(Decimal('0.1'), rounding=ROUND_HALF_EVEN))
print('0.15 =>', Decimal(str(0.15)).quantize(Decimal('0.1'), rounding=ROUND_HALF_EVEN))
print('0.25 =>', Decimal(str(0.25)).quantize(Decimal('0.1'), rounding=ROUND_HALF_EVEN))
print('0.35 =>', Decimal(str(0.35)).quantize(Decimal('0.1'), rounding=ROUND_HALF_EVEN))
print('0.45 =>', Decimal(str(0.45)).quantize(Decimal('0.1'), rounding=ROUND_HALF_EVEN))
In [14]:
print(Decimal(2.675))
In [15]:
print(Decimal(2.675).quantize(Decimal('0.01'), rounding=ROUND_HALF_UP))
In [16]:
print(Decimal(str(2.675)).quantize(Decimal('0.01'), rounding=ROUND_HALF_UP))
In [17]:
print(Decimal(2.675).quantize(Decimal('0.01'), rounding=ROUND_HALF_EVEN))
In [18]:
print(Decimal(str(2.675)).quantize(Decimal('0.01'), rounding=ROUND_HALF_EVEN))
In [19]:
d = Decimal('123.456').quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
In [20]:
print(d)
In [21]:
print(type(d))
In [22]:
# print(1.2 + d)
# TypeError: unsupported operand type(s) for +: 'float' and 'decimal.Decimal'
In [23]:
print(1.2 + float(d))
In [24]:
i = 99518
In [25]:
print(Decimal(i).quantize(Decimal('10'), rounding=ROUND_HALF_UP))
In [26]:
print(Decimal('10').as_tuple())
In [27]:
print(Decimal('1E1').as_tuple())
In [28]:
print(Decimal(i).quantize(Decimal('1E1'), rounding=ROUND_HALF_UP))
In [29]:
print(int(Decimal(i).quantize(Decimal('1E1'), rounding=ROUND_HALF_UP)))
In [30]:
print(int(Decimal(i).quantize(Decimal('1E2'), rounding=ROUND_HALF_UP)))
In [31]:
print(int(Decimal(i).quantize(Decimal('1E3'), rounding=ROUND_HALF_UP)))
In [32]:
print('4 =>', int(Decimal(4).quantize(Decimal('1E1'), rounding=ROUND_HALF_UP)))
print('5 =>', int(Decimal(5).quantize(Decimal('1E1'), rounding=ROUND_HALF_UP)))
print('6 =>', int(Decimal(6).quantize(Decimal('1E1'), rounding=ROUND_HALF_UP)))