这是python的一个程序。将x与1.0进行比较时,我得到'false'作为输出。请注意,我已使用for循环将0.1乘以十倍于x,其初始值为0.0。问题出在哪里 ? 此外,如果我们要求计算机-打印x。然后打印:x = 1.0。
我试图从计算机的角度解决这个问题。计算机使用二进制表示形式,并且我知道它不能为任何变量分配精确的'0.1'值,因为不能以a * 2 ^ b的形式编写0.1,但这如何导致x == 1.0成为错误的语句。
x = 0.0
for i in range(10):
x = x + 0.1
if x == 1.0:
print x, '= 1.0'
else:
print x, 'is not 1.0'
我期望输出为:1.0 = 1.0 但是实际输出是:1.0不是1.0