Да, для дробных чисел есть такое, но это не косяк.
if( a == 1.0 )
Так лучше не делать и если вы написали программу и в настоящий момент это условие нормально работает то не факт, что в следующий раз оно не начнет "глючить".
Выход есть: заменить точное сравнение на совпадение, на сравнение с приближенной точностью:
if(abs(a - 1.0) < 0.001 )
т.е. в данном случае если разница (a - 1.0) меньше точности (0.001), то условие выполнится корректно...