Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problemas con FormatFloat (https://www.clubdelphi.com/foros/showthread.php?t=6207)

jsanchez 23-12-2003 18:32:03

Problemas con FormatFloat
 
Hola Foro.

Feliz Navidad.

Mi problema es el siguiente, en un parantalla de facturación quiero que al digitar un monto y salir del edit se me formatee con comas y puntos. Utilizo el siguiente codigo

Código:

procedure TfrmFacturaNueva.edValorDolaresExit(Sender: TObject);
var
        ed : tRightEdit;
begin
  ed:=sender as tRightEdit;
  ed.Text:=FormatFloat('#,##0.00', strToFloat(ed.Text));       
end;

El caso es que la salida queda así: "3 000 000.00", evidentemente no me sirve porque cuando pasa de nuevo por ahí el cursor, me da un error diciendome que no puede convertir eso a float, normal.

Alguien podría decirme porque me formatea mal?

La configuración regional de la computadora está bien, ',' para miles y '.' para decimales.

Muchas gracias.

delphi.com.ar 23-12-2003 18:37:11

¿No habrás modificado el valor de ThousandSeparator a ' '?... Prueba asignando previamente:
Código:

ThousandSeparator := '.';
Saludos!

marcoszorrilla 23-12-2003 19:18:17

Creo que el problema viene dado porque en la segunda vez que intentes convertirlo el separador de millares no es compatible y arroja una excepción, por lo que propongo la siguiente solución guardar el número en una variable y actuar sobre ella:

Código:

procedure TForm1.Button1Click(Sender: TObject);
var
MiNumero:Double;
begin
MiNumero:=strToFloat(StringReplace(ed.Text,ThousandSeparator,'',[rfReplaceAll]));
ed.Text:=FormatFloat('#,##0.00', MiNumero);
StringReplace(Ed.Text,',',' ',[rfReplaceAll]);
end;

Un Saludo.


La franja horaria es GMT +2. Ahora son las 05:16:18.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi