Сравнение чисел с плавающей точкой

А везде пишут, что нельзя. Но если подумать, получается, что в таких-то случаях можно.

Ещё вопрос: какого типа переменные в результате будут сравниваться в if (a==1)? Чтобы что-то сравнить, надо привести это к одному типу. К чему тут автоматически приведётся ?