Me parece que el problema de fondo es de redondeo. Trata de hacer pasar ambos valores por la función RoundTo() al momento de comparar. Por ejemplo:
Código Delphi
[-]if (RoundTo(ADOFacturasSaldo.Value,-2) < RoundTo(Monto,-2)) then
...
Redondea en la segunda cifra decimal.
Ahora el chivo
En mi página web tengo un componente desendiente de TEdit que solo captura números enteros o reales y hace la conversión automáticamente, también previene que el usuario escriba otra cosa que no sea números, punto o coma y los signos mas o menos. Se llama
TEditReal.