Почему оператор if не работает?
Потому что он у вас не равен 0,5, а равен какому-нибудь 0,49999999999999
Потому что нельзя так сравнивать вещественные числа.
Самая частая ошибка, которая встречается у абсолютно всех кодеров.
https://0.30000000000000004.com/