# decimal精确小数

# Decimal

decimal​模块是Python内置的一个用于高精度浮点计算的模块,其提供了一种精度更高的浮点数类型Decimal​,可以用于处理需要更高精度的浮点数计算。与常规的浮点数类型float​相比,Decimal​类型能够保证运算的精度和准确性。

使用decimal​模块进行计算时,可以通过getcontext()​函数获取上下文环境,从而设置精度、舍入模式等参数。Decimal​类型的对象支持基本的算术运算和一些高级运算,如指数运算、对数运算、三角函数等。

decimal​模块还提供了一些函数,如sum()​、mean()​、quantize()​等,用于对Decimal​类型进行求和、求平均值、取整等操作。此外,decimal​模块还支持将Decimal​类型转换为float​类型、字符串类型等。

但是需要我们注意的是,decimal​模块的运行速度必然是没有内置类型float​快的,并且在实践中,很少有需要计算到小数点17位之后的情况(float支持到17位精度)。

import decimal

a = decimal.Decimal('0.1')
b = decimal.Decimal('0.2')
c = a + b
print(c)

decimal.getcontext().prec = 4
a = decimal.Decimal('1')
b = decimal.Decimal('3')
c = a / b
print(c)