Оператор присваивания имеет результат, это только что назначенная переменная!
Таким образом, код фактически эквивалентен:
f = 0.1;
if(f) // and as unequal to 0...
Вы можете попытаться присвоить 0.0 для сравнения:
if(f = 0.0)
Теперь будет напечатано no
.