Потому что компьютер хранит числа в двоичном представлении.
Значит 598.68 запишется как 1.0001010110(10101110000101000111) * 29
Поскольку дробь бесконечная, а разрядность вычислений нет, то число в памяти компьютера представляется с некоторой погрешностью. При вычислениях эта погрешность, как правило, нарастает.