1.可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确。
2.要从浮点数据转换为Decimal类型
3.通过设定有效数字,限定结果样式:
4.四舍五入,保留几位小数
from decimal import *
Decimal.from_float(12.222)
Out[279]: Decimal('12.2219999999999995310417943983338773250579833984375')
getcontext().prec = 6
Decimal.from_float(12.222)
Out[281]: Decimal('12.2219999999999995310417943983338773250579833984375')
Decimal.from_float(12.222).quantize(Decimal('0.00'))
Out[282]: Decimal('12.22')
5. 计算Decimal和float相加
a=Decimal(12.323)
a
Out[284]: Decimal('12.32300000000000039790393202565610408782958984375')
b=1.232
a+b
Traceback (most recent call last):
File "<ipython-input-286-f1d53b280433>", line 1, in <module>
a+b
TypeError: unsupported operand type(s) for +: 'decimal.Decimal' and 'float'
a+Decimal(b)
Out[287]: Decimal('13.5550')