Foros Club Delphi

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

lKinGl 17-11-2008 01:35:43

Solo 2 Decimales
 
Salu2 amigos foristas

Tengo este código:
Código Delphi [-]
procedure TForm5.Edit4KeyPress(Sender: TObject; var Key: Char);
var
Oper:Integer;
Tot ,Bas, Iva, Exe:Double;
begin
Tot:=0;
Bas:=0;
Iva:=0;
Exe:=0;
if key=#13 then
  begin
    With form1.ZVentas do
      Begin
        Oper:=RecordCount+1;
        Tot:=StrToFloat(Edit3.Text);
        Bas:=StrToFloat(Edit4.Text);
        Iva:=Bas*0.09;
        Exe:=Tot-Bas-Iva;
        Insert;
        FieldByName('N').AsInteger:=Oper;
        FieldByName('Fecha').AsDateTime:=StrToDate(MaskEdit1.Text);
        FieldByName('Rif').AsString:=MaskEdit2.Text;
        FieldByName('Nors').AsString:=Edit1.Text;
        FieldByName('Numf').AsInteger:=StrToInt(Edit2.Text);
        FieldByName('Vexe').AsFloat:=RoundTo(Exe,2);
        FieldByName('Tvtas').AsFloat:=RoundTo(Tot,2);
        FieldByName('IVA').AsString:='9%';
        FieldByName('BIMP').AsFloat:=RoundTo(Bas,2);
        FieldByName('IIVA').AsFloat:=RoundTo(Iva,2);
        Post;
        refrescar;
        sumatoria;
      end;
  end;
end;

tal y como aparece en mi código he usado las funciones RoundTo(var,2) por que consegui un tema en el foro que hablaba de eso pero a mi no me funciona

de igual manera con la Funcion Format('%f',[var]) tampoco logra lo que necesito....

como puedo lograr guardar con 2 decimales? asi el número sea 200 necesito guardar 200,00

gracias adelantadas

lKinGl 17-11-2008 03:00:39

olvide decir que uso firebird-2.0 y los campos que necesito que queden 99999,99 son de tipo Float, creo que alli es mi problema que no deberia ser float sino algun dato tipo money pero no veo esa caracteristica al momento de elegir el tipo de dato

salu2

coso 17-11-2008 20:21:13

Hola, el tipo de dato que dices es el 'currency'. Sobre lo de guardar dos decimales, quiza seria mejor guardar el numero entero y tansolo mostrar (mediante el formato del campo) los dos decimales. Ten en cuenta que en todas las maquinas siempre hay una imprecision en los double. Saludos.

Lepe 18-11-2008 09:52:18

Float para valores monetarios.... nunca ;)

Usa NUMERIC(10,2) en dialecto 3 (dialecto 1 ya pasó de moda ;).

Ya en delphi, al TField correpondiente puedes ponerle Currency := true en el inspector de objetos.

Saludos


La franja horaria es GMT +2. Ahora son las 16:28:28.

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