Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-10-2008
Avatar de jirbert
jirbert jirbert is offline
Miembro
 
Registrado: nov 2007
Ubicación: Valencia-Venezuela
Posts: 60
Poder: 17
jirbert Va por buen camino
Exclamation problema al convertir valor en edit de forma str a float

buenas noches como siempre lo hago antes de abrir un hilo nuevo busco primero a ver si consigo problemas relacionados con el mio, pero por ser internet se encuentra un gran cantidad de problemas paracidos pero de los que lei ninguno concuerda con el mio, por otra parte como me urge un pronta respuesta decidi abrir un hilo

aqui les dejo mi problema y espero me puedan ayudar gracias de antemano..

tengo un programa de facturacion, el cual al agregar o eliminar un producto me hace la siguiente funcion:
Código Delphi [-]
Var
Precio : Currency;
iva,total,total2:double;
n1,n2,nt:double;
begin
 precio := 0;
    form1.Table4.DisableControls;
    try
     form1.Table4.First;
      While Not form1.Table4.Eof do
      begin
       Precio := Precio + form1.Table4.FieldbyName('Total').ASCurrency;
       form1.Table4.Next;
      end;
       edit4.Text := CurrToStr(Precio);
        finally
     form1.Table4.EnableControls;
    end;
  begin
    total:=strtofloat(edit4.text);
    iva:=total*0.09;
    edit5.Text:=format('%f',[iva]);
    n1:=strtofloat(edit4.text);
    n2:=strtofloat(Edit5.text);
    nt:=n1+n2;
    edit6.Text:=floattostr(nt);
  end;

esto va calculado en tres tedit

edit1 subtotal este campo viene expresado en entero ya que todos lo productos que se ingresan son enteros
edit2 iva este flotante po lo de *0.09
edit3 total y este a su vez deveria ser flotante porque es la suma de edit1+edit2 pero no.

ejemplo:
asi deberia ser:

edit1 subtotal 13245
edit2 iva 1192,05
edit3 total 14437,05

asi lo hace:

edit1 subtotal 13245
edit2 iva 1192,05
edit3 total 14437,0

y como por otra parte tengo trabando el Atexto para convertir el monto en letras para la factura me da como resultado:

catorse mil cuatrocientos treinta y siete con cero cinco centimos

entonces no entiendo otra cosa que me interesaria es hacer que de este formato:

edit1 subtotal 13245
edit2 iva 1192,05
edit3 total 14437,05

se viera asi:

edit1 subtotal 1.3245
edit2 iva 1.192,05
edit3 total 14.437,05

con la separacion de decimales y de miles!!

gracias por la ayuda que puedas brindarme!!!!
__________________
Uso Delphi 6 y Tablas dBase IV...
Responder Con Cita
  #2  
Antiguo 03-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
La verdad es que eso de sumar lo podías hacer con un query:
Código Delphi [-]
query1.sql.text := 'select SUM(total) from tabla where idfactura = ' + inttostr(numeroFactura
query1.Open;
suma_total := query1.fields[0].AsCurrency;

En lugar de floattostr, usa FormatFloat(',#0.00', suma_total)

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 03-10-2008
Avatar de jirbert
jirbert jirbert is offline
Miembro
 
Registrado: nov 2007
Ubicación: Valencia-Venezuela
Posts: 60
Poder: 17
jirbert Va por buen camino
Cool hola lepe gracias por la sugerencia

hola lepe gracias por la sugerencia, pero estoy empezando a creer que son problemas matematicos
porque
en este ejemplo

edit1
subtotal 59595
edit2 iva 5363,55
edit3 total 64958,55

me puse a sacar cuentas en calculadoras y al igual que mi programa omite en cero de la derecha del decimal. con respecto a lo de la separacion de decimales y miles. no me funciona yo estuve probando

Código Delphi [-]
edit6.text:=format('#.###,##', (edit6.text))

pero no me funciona ni la que me proporcionaste.. de todas formas gracias por la ayuda
__________________
Uso Delphi 6 y Tablas dBase IV...
Responder Con Cita
  #4  
Antiguo 03-10-2008
Avatar de Luis M.
[Luis M.] Luis M. is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Ripollet - Barcelona
Posts: 212
Poder: 20
Luis M. Va por buen camino
Prueba esto:

Código Delphi [-]
edit6.text:=format('#,##0.00', (edit6.text))
Responder Con Cita
  #5  
Antiguo 03-10-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
¿por que en lugar de utilizar TEdits para manejar valores monetarios no utilizas el TJVValidateEdit de las Jedi?, son gratis y muy muy recomendables.

Además de que te evitas la pena de andar haciendo conversiones de Str a Curr o viceversa:

UnValidateEdit.AsCurrency := FieldByName('unCampo').AsCurrency; // AsCurrency, AsINteger, AsFloat, AsString... como quieras.
UnValidateEdit.AsCurrency := OtroValidate.AsCurrency + 100;

Y para los formatos, simplemente editar una o dos propiedades y te olvidas del formato...
__________________

Responder Con Cita
  #6  
Antiguo 03-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por jirbert Ver Mensaje
hola lepe gracias por la sugerencia, pero estoy empezando a creer que son problemas matematicos
porque
en este ejemplo

edit1
subtotal 59595
edit2 iva 5363,55
edit3 total 64958,55

me puse a sacar cuentas en calculadoras y al igual que mi programa omite en cero de la derecha del decimal. con respecto a lo de la separacion de decimales y miles. no me funciona yo estuve probando

Código Delphi [-]
edit6.text:=format('#.###,##', (edit6.text))

pero no me funciona ni la que me proporcionaste.. de todas formas gracias por la ayuda
Hola

Yo sugiero que se use esto:

Código Delphi [-]
  edit1.Text := Format('%m',[subtotal]);
  edit2.Text := Format('%m',[IVA]); 
  edit3.Text := Format('%m',[subtotal+IVA]);

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 03-10-2008
Avatar de jirbert
jirbert jirbert is offline
Miembro
 
Registrado: nov 2007
Ubicación: Valencia-Venezuela
Posts: 60
Poder: 17
jirbert Va por buen camino
Cool hola egostar gracias por el suministro

hola egostar gracias por el suministro, pero al igual que el de lepe no me da respuesta diferente sigue siendo la misma, ContraVeneno de casualidad tienes algun link para descargar eso de las jevi porque estuve googleando y no consegui nada!!
__________________
Uso Delphi 6 y Tablas dBase IV...
Responder Con Cita
  #8  
Antiguo 03-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Busca por JVCL seguro que vas derechito a la web

Si no te funciona, ojito que en mi ejemplo suma_total está declarado como un float, si es un string desde luego que no funciona.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 03-10-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
changos... hace un mes que salió la 3.35 y yo sigo con la 3.34... a caray... la 35 está en pruebas todavía... que bien, entonces seguimos con la 3.34
http://sourceforge.net/project/showf...ease_id=616736
__________________

Responder Con Cita
  #10  
Antiguo 03-10-2008
Avatar de jirbert
jirbert jirbert is offline
Miembro
 
Registrado: nov 2007
Ubicación: Valencia-Venezuela
Posts: 60
Poder: 17
jirbert Va por buen camino
Thumbs up

funcionan con cualquier delphi verdad yo tengo delphi6, gracias por el link
__________________
Uso Delphi 6 y Tablas dBase IV...
Responder Con Cita
  #11  
Antiguo 03-10-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
pues yo los tengo instalados en un Delphi 5, en un 2006 y en un 2007... así que supongo que sí funcionan en delphi 6
__________________

Responder Con Cita
  #12  
Antiguo 03-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por jirbert Ver Mensaje
hola egostar gracias por el suministro, pero al igual que el de lepe no me da respuesta diferente sigue siendo la misma, ContraVeneno de casualidad tienes algun link para descargar eso de las jevi porque estuve googleando y no consegui nada!!
Hola,

No te entiendo, esto es lo que me muestra a mi.



Esto es como hago los calculos

Código Delphi [-]
  subtotal := 13245;
  iva := SubTotal * 0.09;
  edit1.Text := Format('%m',[SubTotal]);
  edit2.Text := Format('%m',[IVA]);
  edit3.Text := Format('%m',[SubTotal+IVA]);

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #13  
Antiguo 03-10-2008
Avatar de jirbert
jirbert jirbert is offline
Miembro
 
Registrado: nov 2007
Ubicación: Valencia-Venezuela
Posts: 60
Poder: 17
jirbert Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Hola,

No te entiendo, esto es lo que me muestra a mi.



Esto es como hago los calculos


Código Delphi [-]
subtotal := 13245;
iva := SubTotal * 0.09;
edit1.Text := Format('%m',[SubTotal]);
edit2.Text := Format('%m',[IVA]);
edit3.Text := Format('%m',[SubTotal+IVA]);





Salud OS
bueno egostar es si lo hace a segun como deberia ser per opor ejemplo cuando es 13254,50 aprece 13254,5 y a la hora del Atexto aparece 50, por lo que el contador me esta sugiriendo que lo acomode de tal modo que aparezca tal cual como en el texto con sus dos decimales, ya que esas son las normas que piden.
__________________
Uso Delphi 6 y Tablas dBase IV...
Responder Con Cita
  #14  
Antiguo 03-10-2008
Avatar de jirbert
jirbert jirbert is offline
Miembro
 
Registrado: nov 2007
Ubicación: Valencia-Venezuela
Posts: 60
Poder: 17
jirbert Va por buen camino
saben algo me puse a verificar la base de datos y todos las facturas antes realizadas estan guardadas perfectamente, ahora no se porque a la hora de reflejarlo en el edit me elimina el cero del segundo decimal, y al imprimirlo sale igual que lo reflejado en el edit pero segun todos los registros en la bd estan perfectamente.
__________________
Uso Delphi 6 y Tablas dBase IV...
Responder Con Cita
  #15  
Antiguo 03-10-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
¿Podrías mostrarnos un poco de código? Tal vez de esa manera podríamos saber donde está el problema.
La verdad es que podríamos estar adivinando donde está el problema, sería muy recomendable que expongas el código para saber como y que estás haciendo... tal vez hay algo en el medio que afecta.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #16  
Antiguo 03-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por jirbert Ver Mensaje
saben algo me puse a verificar la base de datos y todos las facturas antes realizadas estan guardadas perfectamente, ahora no se porque a la hora de reflejarlo en el edit me elimina el cero del segundo decimal, y al imprimirlo sale igual que lo reflejado en el edit pero segun todos los registros en la bd estan perfectamente.
Dejame entender, como es que quieres que se traduzca 13254,5
  • Trece mil doscientos cincuenta y cuatro pesos 50/100 MN
  • Trece mil doscientos cincuenta y cuatro pesos con 50 centavos
  • Trece mil doscientos cincuenta y cuatro pesos con cincuenta centavos

Porque acabo de probar el componente y a mi me muestra esto

trece mil doscientos cincuenta y cuatro pesos con cincuenta centavos

Uso esto

Código Delphi [-]
  Letras1.Numero := 13254.5;
  Letras1.Moneda := 'pesos';
  Letras1.Centavos := 'centavos';
  ShowMessage(Letras1.AsString);

Usando este valor

Código Delphi [-]
  Letras1.Numero := 13254.05;
  Letras1.Moneda := 'pesos';
  Letras1.Centavos := 'centavos';
  ShowMessage(Letras1.AsString);

Me muestra

trece mil doscientos cincuenta y cuatro pesos con cinco centavos

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #17  
Antiguo 03-10-2008
Avatar de jirbert
jirbert jirbert is offline
Miembro
 
Registrado: nov 2007
Ubicación: Valencia-Venezuela
Posts: 60
Poder: 17
jirbert Va por buen camino
hola delphius mira tengo esto en el boton de entrada de cada producto
Código Delphi [-]
Var
Precio : Currency;
iva,total:double;
n1,n2,nt:double;

begin
 form1.Table4.Append;
 form1.Table4.Fields[0].Value:=edit2.Text; // bd datos temporal de productos a facturar
 form1.Table4.Fields[1].Value:=edit9.Text;// bd datos temporal de productos a facturar
 form1.Table4.Fields[2].Value:=edit7.text; // bd datos temporal de productos a facturar
 form1.Table4.Fields[4].Value:=edit8.Text;// bd datos temporal de productos a facturar
 form1.Table4.Fields[5].Value:=edit4.Text; // bd datos temporal de productos a facturar
 form1.Table4.Fields[3].Value:=edit5.Text; // bd datos temporal de productos a facturar
 form1.Table4.Fields[6].Value:=edit6.Text; // bd datos temporal de productos a facturar
 form1.Table4.Post; // bd datos temporal de productos a facturar 
 panel1.Visible:=false;

    precio := 0;
    form1.Table4.DisableControls;
    try
     form1.Table4.First;
      While Not form1.Table4.Eof do
      begin
       Precio := Precio + form1.Table4.FieldbyName('Total').ASCurrency;
       form1.Table4.Next;
      end;
       edit4.Text := CurrToStr(Precio);
        finally
     form1.Table4.EnableControls;
    end;
  begin
    total:=strtofloat(edit4.text);  // esto es el subtotal
    iva:=total*0.09;
    edit5.Text:=format('%f',[iva]);   //aqui el iva
    n1:=strtofloat(edit4.text);
    n2:=strtofloat(Edit5.text);
    nt:=n1+n2;
    edit6.text:=floattostr(nt);   // aqui la suma de ambos

 end;

end;

egostar yo utilizo este:
  • Trece mil doscientos cincuenta y cuatro pesos con cincuenta centavos
__________________
Uso Delphi 6 y Tablas dBase IV...
Responder Con Cita
  #18  
Antiguo 03-10-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
No veo el problema, al menos con una visión rápida, pero lo que si noto que hay muchos pasos de float a string y a la inversa.... ¿Porqué en vez de estar haciendo estas conversiones (a mi modo de ver innecesarias) no guardas los datos en variables temporales y muestras el resultado final en los edits?

Quizá el lio está en esas conversiones de float a string y a la inversa, de string a float.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #19  
Antiguo 03-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Hola

No entiendo para que usas esos tipos de datos, yo usaria esto,

Código Delphi [-]
Var
  Precio,iva,total : Real;
begin
    Precio := 0;
    form1.Table4.First;
    while Not form1.Table4.Eof do begin
       Precio := Precio + form1.Table4.FieldbyName('Total').Value;
       form1.Table4.Next;
    end;
    edit4.Text := format('%m',[Precio]);
    iva:= Precio * 0.09;
    edit5.Text := format('%m',[iva]); 
    edit6.Text := format('%m',[Precio+iva]); 
    Letras1.Numero := Precio+iva;
    Letras1.Moneda := 'pesos';
    Letras1.Centavos := 'centavos';
    ShowMessage(Letras1.AsString);
end;

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #20  
Antiguo 03-10-2008
Avatar de jirbert
jirbert jirbert is offline
Miembro
 
Registrado: nov 2007
Ubicación: Valencia-Venezuela
Posts: 60
Poder: 17
jirbert Va por buen camino
bueno prove el cod de egostar y me realiza lo mismo
[IMG]file:///C:/DOCUME%7E1/ADMINI%7E1/CONFIG%7E1/Temp/moz-screenshot-2.jpg[/IMG]
__________________
Uso Delphi 6 y Tablas dBase IV...
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
dar formato float a un edit Jheysson13 Varios 6 05-07-2008 22:30:58
Convertir de Texto a Float egarc SQL 6 13-12-2007 15:18:42
convertir edit de string a float Kamael OOP 1 11-08-2007 03:33:23
Como Convertir un dato Integer ó Float a String en FireBird???? AGAG4 Firebird e Interbase 8 04-12-2004 02:59:47
Valor Null en campo float de un FasReport Romanosky Impresión 4 10-11-2004 17:56:04


La franja horaria es GMT +2. Ahora son las 01:31:20.


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