Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Dudas con decimales (https://www.clubdelphi.com/foros/showthread.php?t=65085)

rufo 19-11-2009 02:00:22

Dudas con decimales
 
Hola amigos aqui consultandolos de nuevo resulta que tengo una aplicacion que hace el calculo de una cantidad que me hace que calcule el iva y un subtotal pero al hacer el calculo me sale con varias decimales entonces mi problema es que quiero hacer que me visualice solo dos decimales les anexo el codigo que estoy usando.
Código:

procedure TAlta_factura.Button2Click(Sender: TObject);
var
 no3,no4:real;
 n: String;
begin
  no3:=strtofloat(edit10.Text);
  edit8.Text:=floattostr(no3/1.15);
  no4:=strtofloat(edit8.text);
  edit9.Text:=floattostr(no4*0.15);
  n:= Deletrear(StrToFloat(Edit10.Text) );
  label5.Caption:= (n);
end;

De antemano muchas gracias y solo para terminar estoy usando Delphi 5

jhonny 19-11-2009 03:15:10

La función FormatFloat te puede ayudar a llevar a cabo tu objetivo.

rgstuamigo 19-11-2009 13:46:10

Bueno lo mas conveniente seria usar la funcion RoundTo (de la unidad Math) que utiliza el redondeo bancario(Banker’s rounding).;).
Ejemplo de uso:
Cita:

RoundTo(1234567, 3) ->1234000
RoundTo(1.234, -2)-> 1.23
RoundTo(1.235, -2)-> 1.24
RoundTo(1.245, -2)-> 1.24
Ahora ten cuidado con el segundo argumento que es el que indica cuantos decimales apareceran,pues no es lo mismo ponerlo como positivo que negativo.Si tienes dudas chequea la ayuda de Delphi.;)
Saludos...:)

gerardus 19-11-2009 14:05:43

Ten en cuenta que quizás en tu páis sector/de actividad el redondeo correcto o esperado no sea
el estandar de Delphi.
En mi caso uso:

Código:

function RoundD(x: Extended; d: Integer): Extended;
var
  n: Extended;
begin
  n := IntPower(10, d);
  x := x * n;
  Result := (Int(x) + Int(Frac(x) * 2)) / n;
end;

RoundD(1.234, -2)-> 1.23
RoundD(1.235, -2)-> 1.24
RoundD(1.245, -2)-> 1.25


Cordialmente,

Gerard.

rgstuamigo 19-11-2009 14:12:27

Bueno:rolleyes: en todo caso si no te sirve ninguna de las opciones anteriores pues mira aqui hay muchas opciones mas.;)
Saludos...:)

_CALI 15-01-2010 15:44:22

porque no usas las propiedades editformat y displayformat del campo,
para q te de 2 decimales, en ambas propiedades pones 0.00


La franja horaria es GMT +2. Ahora son las 02:57:36.

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