PDA

Ver la Versión Completa : Dudas con decimales


rufo
19-11-2009, 02:00:22
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.

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:
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:


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 (http://www.trucomania.org/trucomania/truco.cgi?101&esp) 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