PDA

Ver la Versión Completa : cambiar formato a un numero ejm 1.980,22 >1980,22


darkbits
29-05-2012, 21:00:00
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 :
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:

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.