Я не могу понять, почему этот код возвращает значение False:Почему это вернуть Ложные
list_of_disks = [[170, 158, 470, 0.1], [135, 176, 410, 0.2], [100, 193, 350, 0.3], [170, 458, 470, 1.1]]
def f1(pos):
for x in range(0, len(list_of_disks)):
if list_of_disks[x][3] == pos:
print list_of_disks[x+1][3] - 0.1, list_of_disks[x][3]
print list_of_disks[x+1][3] - 0.1 == list_of_disks[x][3] # Why is this False..?
break
f1(0.2)
Когда я распечатать 2 значения, они кажутся такими же ..? Надеюсь, кто-то может помочь мне здесь, спасибо!
с плавающей точкой не может рассчитывать на то, что быть точным. –
См. Учебник Python [«Плавающая точка: проблемы и ограничения»] (https://docs.python.org/2/tutorial/floatingpoint.html). См. Также [«Что каждый компьютерный ученый должен знать о арифметике с плавающей точкой»] (http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html). –
Я думаю, что точность здесь. –