Por supuesto que es un problema del programador, y no de Embarcadero.
No se pueden comparar numeros de coma flotante por igualdad, y el que te diga lo contrario,
está mintiendo o no tiene idea del tema. Los numeros flotantes se pueden comparar "aproximadamente". Esto es intrinseco a como se representan estos numeros, basicamente, hay números que no se pueden representar exactamente, entonces por eso siempre se "redondea" o se "aproximan".
Si necesitas precision, y usas numeros de aritmetica flotante, vas mal. Deberias usar un tipo de datos de los que se conoce como "fixed". En Delphi, ese tipo de datos se llama
Currency. Desde todos los lenguajes de programacion, hasta las bases de datos, contemplan este tipo de datos (puede ser llamado currency, money, fixedfloat, etc). Basicamente funciona como un entero de 64bits (con signo), pero del cual se interpretan los ultimos 4 digitos del numero como los decimales; en la practica, no creo que necesites mas de 4 decimales para manejar dinero. En Delphi creo que existe otra alternativa, el
Binary Coded Decimal (BCD), pero nunca lo he usado y no puedo opinar
Te recomiendo que leas esto
http://floating-point-gui.de/