Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   cambiar formato a un numero ejm 1.980,22 >1980,22 (https://www.clubdelphi.com/foros/showthread.php?t=78952)

darkbits 29-05-2012 21:00:00

cambiar formato a un numero ejm 1.980,22 >1980,22
 
un saludo
estoy trabajando con monedas en D6
tengo el numero 1980.22 y para mostrar en un caption en moneda con punto y coma lo convierto asi :
Código Delphi [-]
pbs.caption:=FormatFloat('#,##0.00',strtofloat(pbs.caption));
para q me muestre 1.980.22

y pasa que mas abajo tengo que que hacer una resta y no me permite por el PUNTO
y ahi me da el error me dice que tengo que tener 1980,22 y no 1.980,22

como lo vuelvo a convertir pbs.caption >> 1.980,22 a 1980,22 ?

gracias

maeyanes 29-05-2012 21:09:45

Hola...

¿Y por que no usas una variable de tipo Currency o Double para hacer los cálculos y en el Caption del componente solo asignas la representación en String del valor?


Saludos...

ecfisa 29-05-2012 21:26:03

Hola.

Lo que te propone maeyanes es lo más acertado, trabajar internamente los valores y mostrar con el formato que desees.

Si no, tenes que hacer cosas rebuscadas como por ejemplo:
Código Delphi [-]
var
  ARestar: Double;
  s: string;
begin
  pbs.Caption:= '1980,22';
  ARestar:= 80.22;
  pbs.Caption:= FormatFloat('#,##0.00', StrToFloat(pbs.Caption));
  s:= pbs.Caption;
  s:= StringReplace(s, '.', '', []);
  s:= FormatFloat('#,##0.00', StrToFloat(FloatToStr(StrToFloat(s) - ARestar)));
  ShowMessage(s);  // 1.900,00
end;
Y encima puede funcionar bién en algunos equipos y en otros no, ya que depende de la configuración regional del S.O. en que este ejecutándose.

Saludos.


La franja horaria es GMT +2. Ahora son las 14:31:42.

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