Вам нужно прочитать числа с плавающей запятой. Многие десятичные числа не имеют точного представления в двоичном формате, поэтому они не будут точно соответствовать.
Вот почему в сравнении вы склонны видеть:
if (abs(a-b) < epsilon) { ...
где эпсилон - это небольшое значение, например 0,00000001, в зависимости от требуемой точности.