Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Solo dos Decimales (https://www.clubdelphi.com/foros/showthread.php?t=54812)

odrack 31-03-2008 20:52:31

Solo dos Decimales
 
Saludos al foro.

Tengo un pequeño problema con los decimales, tengo varias operaciones donde el resultado me salen mas de 8 decimales y solo quiero mostrar 2 decimales, como puedo cortar o truncar estos??

agrego un fragmento de codigo donde hago las operaciones
Código Delphi [-]
//Hago un query para hacer la suma de un monto y lo almaceno en una variable monto
     monto:=strtofloat(dbedit9.Text);
//si tiene descuento los aplico (estos son descuentos globales, Ej. 1%+2%+3%)
//Totales con descuento
desc1:=strtofloat(edit8.Text);
desc2:=strtofloat(edit10.Text);
desc3:=strtofloat(edit11.Text);
total:=strtofloat(dbedit9.text);
total1:=total*(desc1/100);
totdesc1:=total-total1;
total2:=totdesc1*(desc2/100);
totdesc2:=totdesc1-total2;
total3:=totdesc2*(desc3/100);
totdesc3:=totdesc2-total3;
subtot:=totdesc3+strtofloat(edit1.Text)+strtofloat(edit2.Text)+strtofloat(edit6.text);
subt:=strtofloat(edit1.Text)+strtofloat(edit2.Text)+strtofloat(edit6.text);
edit14.text:=floattostr(subt);
edit15.Text:=floattostr(subtot);
 
//al resultado desgloso el iva
iva:=strtofloat(edit15.Text);
resultado:=iva/1.15;
edit20.Text:=floattostr(resultado);
stc:=strtofloat(edit15.text)-strtofloat(edit20.text);
//resultado de IVA con mas de 8 decimales
edit21.Text:=floattostr(stc);

Espero que me puedan ayudar.

egostar 31-03-2008 20:57:25

Puedes usar la función

Código Delphi [-]
Format('%7.2m',[total]);

Solo un comentario, te recomiendo que nombres adecuadamente tus objetos porque puedes tener errores si te equivocas al usarlos,

Código Delphi [-]
strtofloat(edit1.Text) 
strtofloat(edit2.Text)
strtofloat(edit6.text)
//Tienes un margen de error muy alto si equivocas el objeto
strtofloat(eIVA.Text) 
strtofloat(eComision.Text)
strtofloat(eViaticos.text)

Salud OS

odrack 31-03-2008 21:02:18

Gracias por los comentarios, solo una pequeña duda, el codigo de format quedaria de la siguiente forma en caso del edit??
Código Delphi [-]
Format('%7.2m',[editX.text]);
y el %7.2 para que sirve?? (no entendi bien para que es)

Gracias

odrack 31-03-2008 22:20:11

Que tal, he investigado un poco hacerca de los decimales, y mi codigo ha quedado asi, solo que no formatea los deciamales. ¿Alguien sabe que esta pasando?

Código Delphi [-]
subtot:=totdesc3+strtofloat(edit1.Text)+strtofloat(edit2.Text)+strtofloat(edit6.text);
subt:=strtofloat(edit1.Text)+strtofloat(edit2.Text)+strtofloat(edit6.text);
edit14.text:=floattostr(subt);
edit15.Text:=format('%0.2f',[subtot]); <<-AQUI
iva:=strtofloat(edit15.Text);
resultado:=iva/1.15;
edit20.Text:=floattostr(resultado);
stc:=strtofloat(edit15.text)-strtofloat(edit20.text);
edit21.Text:=format('%0.2f',[stc]); <<-AQUI

Saludos

Wiarbumu 05-05-2008 21:57:58

Hola, no se si sea muy tarde para la respuesta, a mi me ocurría algo parecido y lo solucioné de la siguiente manera: En el editor de campos del Dataset selcciona el campo en cuestión y configura la propiedad presición que por defecto es 15 a 4 y así solo mostrará dos decimales.

Espero te sirva.

odrack 05-05-2008 22:00:24

hola.

Gracias por responder, ya he solucionado este tema, pero es bueno que hayas respondido, quiza a alguien mas que tenga este problema le ayude!

Saludos.


La franja horaria es GMT +2. Ahora son las 00:46:57.

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