常用模块decimal

前言

decimal 模块实现了定点和浮点算术运算符,使用的是大多数人所熟悉的模型,而不是程序员熟悉的模型,即大多数计算机硬件实现的 IEEE 浮点数运算。Decimal 实例可以准确地表示任何数,对其上取整或下取整,还可以对有效数字个数加以限制。

问题

硬件浮点数无法准确地表述值。例如 0.01 + 0.09–> 0.09999999999999999

解决方案

使用decimal内置模块

导入

decimal模块是python自带模块,不需要安装,直接倒入即可

import decimal

基本使用

from decimal import Decimal
d = Decimal(value='0.01') + Decimal(value='0.09')
>>> Decimal('0.10')
d + 10
>>> Decimal('10.10')

设置全局精度

import decimal
decimal.getcontext().prec=5
decimal.Decimal('1') / decimal.Decimal('3')
>>> Decimal('0.33333')

设置局部精度

with decimal.localcontext() as local:
	local.prec = 3
	print(decimal.Decimal('1') / decimal.Decimal('3'))
>>> 0.333

print(decimal.Decimal('1') / decimal.Decimal('3'))
>>> 0.33333
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值