python运算
>>> x = 0>>> x += 0.1
>>> x
0.1
>>> x += 0.1
>>> x
0.2
>>> x += 0.1
>>> x
0.30000000000000004
>>>
为什么x不等于0.3呢? 本帖最后由 Twilight6 于 2020-7-25 23:15 编辑
由于计算机内部是以二进制保存数据,也就是表示浮点型的时候本质还是从 十进制 进行转化成 二进制进行保存数
而就在转化过程中,计算机总有些避免不了的误差导致浮点数转化结果也产生误差
总而言之,你记住 浮点数 都是不准确,有误差的即可
浮点数的误差。
如果想要避免误差,可以:>>> from decimal import Decimal
>>> x = Decimal('0')
>>> x += Decimal('0.1')
>>> x
Decimal('0.1')
>>> x += Decimal('0.1')
>>> x
Decimal('0.2')
>>> x += Decimal('0.1')
>>> x
Decimal('0.3')
>>>
页:
[1]