python中的小数类型

python中有专门的小数类型,区别与浮点型,小数类型有指定的小数位数,比较适合拿来作价格相关的类型。

>>> import decimal

>>> decimal.Decimal(1.0)+decimal.Decimal(-1.0) 

Decimal(0.0)   # 不会出现浮点数那种算不出0 的情况

decimal模块还可以指定当前上下文中(当前模块)的小数类型的位数

>>> import decimal

>>> decimal.getcontext().prec = 4

>>> decimal.Decimal(1) / decimal.Decimal(7)

Decimal('0.1429')

配合上下文管理器使用

>>> import decimal

>>> decimal.Decimal('1.00') / decimal.Decimal('3.00')

Decimal('0.3333333333333333333333333333')

>>> with decimal.localcontext() as  ctx:

                ctx.prec = 2

                decimal.Decimal('1.00') / decimal.Decimal('3.00')

Decimal('0.33')

>>> decimal.Decimal('1.00') / decimal.Decimal('3.00')

Decimal('0.3333333333333333333333333333')

你可能感兴趣的:(python中的小数类型)