Я работаю над небольшим математическим контролером с использованием Python, и все работает хорошо, за исключением разделов. Задача: Фактор с двумя десятичными знаками (2/3 = 0,67), float, равен входу (0,67). Но оператор if, который я использую для сравнения ввода пользователя с результатом, говорит, что он не равен.Python: Коэффициент неравный с переменной с таким же значением
Успение: проблема связана с поплавком.
Мой код:
result = float(value0/value1)
result = round(result,2)
value3 = input("Number 1")
value3 = float(value3)
if result != value3:
print "Wrong!"
print result
elif result == value:
print "Right!"
Конечно, я мог бы создать функцию с другим подходом, но мне интересно понять, почему он не работает.
Если есть аналогичная тема, отправьте ссылку и закройте ее. Спасибо за любую помощь.
Но 2/3 не равно 0,67. – kindall
Вместо этого я предлагаю использовать «десятичный» модуль. https://docs.python.org/3/library/decimal.html#decimal.Decimal –
Рик: Спасибо за ссылку. kindall: Я ссылаюсь на округленный результат 2/3 с двумя десятичными знаками. Поэтому я знаю, что разница между 0.666666 ... (или 2/3) и 0,67. – canguru