У меня есть следующая программа:Python: Почему мой «менее чем» тест терпит неудачу?
def eigen(a, b, c, d, e, f):
epsilon = 1E-9
a = abs(float(a*e+b*f)/float(c*e+d*f) - float(e)/float(f))
print a, epsilon
print a < epsilon
print abs((a*e+b*f)/float(c*e+d*f) - e/float(f)) < epsilon
распечаток:
0.0 1e-09
True
False
когда значения a,b,c,...,f = 3, 1, 1, 3, 4, -4
Я ожидал, что последние две строки в печатном True
, как я думал, что они были equivelent заявления , Вы любезно объясните мне, что происходит?
Спасибо за ваше время.
С наилучшими пожеланиями,
Marius
Если вы хотел, чтобы они были эквивалентны, почему вы записали одно с помощью дополнительного 'float (...)' преобразования с, но не с другим? (Это не вызывает вашей проблемы здесь, но, тем не менее, это признак того, что вы не очень осторожны ...) – abarnert