a = 1.1
b = 2.2
r1 = b-a
print(r1)
import decimal
decimal.getcontext().prec = 2
a = decimal.Decimal('1.1')
b = decimal.Decimal('2.2')
r2 = b-a
print(r2)
a = float(a)
b = float(b)
r3 = b-a
print(r3)
print(r1==r2,r1==r3,r2==r3)
decimal.getcontext().prec = 2
print(decimal.Decimal(r3) == r2)
print(float(r2) == r3)
如果你以为r1、r2、r3、r4都是1.1就大错特错啦~
结果1:r1 != r2
结果2:r1 == r3
结果3:r2 != r3
结果4:decimal.Decimal(r3) != r2
结果5:float(r2) == r3
考虑不同情况,可以选择:①使用decimal库②使用round或者format修改float数精度。