0.1+0.2
Out[2]: 0.30000000000000004
3.14*19
Out[4]: 59.660000000000004
0.1*0.2
Out[5]: 0.020000000000000004
解决方法:
导入模块decimal中的Decimal类
from decimal import Decimal as d
然后把浮点数传入Decimal中,然后分别储存到变量中
a=d("0.1")
b=d("0.2")
print(float(a+b))
输出:
0.3
注意,上方的0.1和0.2在传参的时候应该是字符串,而且把两个变量加起来后还要转换为float
错误示例:
from decimal import Decimal as d
a=d(0.1)
b=d(0.2)
print(float(a+b))
输出:
0.30000000000000004
喜欢的话就点赞关注吧!
浮点数精度问题与解决方案
博客讨论了Python中浮点数计算出现的精度误差,如0.1+0.2不等于0.3的问题。通过引入decimal模块的Decimal类,可以解决这个问题。文章提供了正确示例和错误示例,强调了在使用Decimal时,需要将浮点数转换为字符串。解决方案包括将浮点数转换为Decimal类型进行计算,然后转换回float输出,以确保精度准确。

1572

被折叠的 条评论
为什么被折叠?



