kcal 发表于 2020-7-25 23:03:20

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:11:58

本帖最后由 Twilight6 于 2020-7-25 23:15 编辑



由于计算机内部是以二进制保存数据,也就是表示浮点型的时候本质还是从 十进制 进行转化成 二进制进行保存数

而就在转化过程中,计算机总有些避免不了的误差导致浮点数转化结果也产生误差

总而言之,你记住 浮点数 都是不准确,有误差的即可


永恒的蓝色梦想 发表于 2020-7-25 23:14:26

浮点数的误差。
如果想要避免误差,可以:>>> 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]
查看完整版本: python运算