Python编程:使用decimal定点数计算0.1+0.2
【摘要】 浮点型加法
0.1+0.2
Out[15]: 0.30000000000000004
12
decimal定点数加法
import decimal
decimal.Decimal(0.1) + decimal.Decimal(0.2)
Out[17]: Decimal('0.3000000000000000166533453694')
# 设置精度
decim...
浮点型加法
0.1+0.2
Out[15]: 0.30000000000000004
- 1
- 2
decimal定点数加法
import decimal
decimal.Decimal(0.1) + decimal.Decimal(0.2)
Out[17]: Decimal('0.3000000000000000166533453694')
# 设置精度
decimal.getcontext().prec = 6
decimal.Decimal(0.1) + decimal.Decimal(0.2)
Out[20]: Decimal('0.300000')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
decimal传入浮点型计算
from decimal import *
d1 = Decimal(0.1) + Decimal(0.2)
print(d1)
# 0.3000000000000000166533453694
d2 = Decimal.from_float(0.1) + Decimal.from_float(0.2)
print(d2)
# 0.3000000000000000166533453694
# 格式化
print(d1.quantize(Decimal("0.00"))) # 0.30
print(d2.quantize(Decimal("0.00"))) # 0.30
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
定点数传入字符串做计算
d3 = Decimal("0.1") + Decimal("0.2")
print(d3)
# 0.3
- 1
- 2
- 3
可以看到:
- 浮点数本身计算的时候是不准确的,
- 即便转换为decimal之后也不准确,
- 比较好的方法是通过传入
字符串
做计算
参考
文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。
原文链接:pengshiyu.blog.csdn.net/article/details/84822109
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)