python 0.1+0.2 不等于0.3 的处理办法

>>> i=0
>>> while i<1:
i=i+0.1
print(i)


0.1
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
1.0999999999999999
>>> import decimal  ------------------------------------处理办法:引用decimal类
>>> a=decimal.Decimal('0.1')
>>> b=decimal.Decimal('0.2')
>>> print(a+b)
0.3

扩展

decimal(10,2)的意思

decimal(10,2)中的“2”表示小数bai部分的du位数,zhi如果插入的值未指定小数部分或者小数部分不足dao两位则会自动补到2位小数,若插入的值小数部分超过了2为则会发生截断,截取前2位小数。

“10”指的是整数部分加小数部分的总长度,也即插入的数字整数部分不能超过“10-2”位,否则不能成功插入,会报超出范围的错误。

原文地址:https://www.cnblogs.com/fanqiusha1988/p/13322471.html