Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-12-2003
jsanchez jsanchez is offline
Miembro
 
Registrado: may 2003
Posts: 90
Poder: 21
jsanchez Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 23-12-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
¿No habrás modificado el valor de ThousandSeparator a ' '?... Prueba asignando previamente:
Código:
ThousandSeparator := '.';
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 23-12-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
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.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 08:10:44.


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
Copyright 1996-2007 Club Delphi