kejun0566 发表于 2022-4-9 17:04:02

请问为什么10.1-10=0.09999999999999964

In : 10.1 - 10                                                                                                            
Out: 0.09999999999999964

In : 10.2-10                                                                                                               
Out: 0.1999999999999993

In : 2.1-1                                                                                                               
Out: 1.1

In : 6.1-6                                                                                                               
Out: 0.09999999999999964


为什么会出现这种情况?有些没问题,有些有问题
10.1-10 不是应该等于0.1吗?

wp231957 发表于 2022-4-9 17:05:50

浮点数都是有误差的,误差在一定范围内是可以忽略的

isdkz 发表于 2022-4-9 17:08:16

这跟浮点数在计算机的存储方式有关,浮点数运算有可能会出现精度丢失,

你可以用 decimal 尽可能的避免精度丢失:
In : from decimal import Decimal

In : Decimal('10.1') - Decimal('10')
Out: Decimal('0.1')

In :
页: [1]
查看完整版本: 请问为什么10.1-10=0.09999999999999964