Hola CrazySoft.
Acabo de hacer esta prueba
Código Delphi
[-]
function CalcularExpresion(Expre: string): Double;
begin
Result := StrToFloat(Expre)*2;
end;
procedure TForm1.IBDataSetFloatGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
Text := FloatToStr(CalcularExpresion(TField(Sender).Value));
end;
sobre un campo numérico (DOUBLE PRECISION de
Firebird), y tál como pensaba funciona bién.
El tratamiento dentro de la función
CalcularExpresion no tiene importancia ya que ambas (la tuya y la mía de prueba) reciben una cadena de caracteres y devuelven un número real.
Desconozco que DBMS estes usando pero proba cambiando el modo de enviar el argumento a
CalcularExpresion por:
o por:
Código Delphi
[-]FloatToStr(TField(Sender).AsFloat)
Saludos.