Hola
He hecho esta pequeña prueba
Código Delphi
[-]
begin
aPrecio := StrToFloat('9040');
aPrecio := aPrecio * 0.001;
tmpPrecio := 9.04;
if aPrecio = tmpPrecio then begin
showMessage('iguales');
end;
end;
Y si, efectivamente los valores son iguales, lo que me indica que el valor que recuperas de la base no es igual, puede ser que cuando insertas ese valor a la base viene de una operación que contiene mas de dos decimales.
Salud OS