相关网站:
1.原因
科学计数法的二进制版本,类似于十进制中表示 1/3
是无限循环小数,0.1 在二进制中是无限循环小数,无法精确表示
为什么使用浮点数,其中关键一点就是计算速度快且占用内存空间小。
2.如何注意和规避
对于浮点数不能直接判断是否相等,而应该以它们的差值小于某个小值作为判断:
0.1 + 0.2 == 0.3 # 判断方法是不可靠的
# 推荐方法
a = 0.1 + 0.2
b = 0.3
abs(a - b) < 1e-6
可以使用 decimal
(十进制定点数),表示任意精度的十进制数。
from decimal import Decimal
Decimal('0.1')+Decimal('0.2')
标签:0.1,浮点数,0.2,十进制,Decimal,0.3
From: https://www.cnblogs.com/fengxijlu/p/17397204.html