PDA

Ver la Versión Completa : Problema con round()


CFPA86
21-02-2007, 19:09:44
Hola a todos y todas, tengo un problema al redondear un numero, tengo este codigo
var
Lcant : integer;
GRegSisPromCon, GRegSisPromLts : string;
aux :real;
t : string;
begin
Lcant := 19;
GRegSisPromCon := '1000';
GRegSisPromLts := '5';
aux := Round(19 * 1000/5); <----- normalmente de 3800
// aux := round(Lcant * StrToInt(GRegSisPromCon)/ StrToInt(GRegSisPromLts));
// Str(aux:2:0,t);
ShowMessage(FloatToStr(aux)); <- resultado de 3800 y no de 4
end;

Pero si lo hago en una forma sencilla de round(3.8) si me da el resultado de 4 que es lo que necesito, no lo hago asi ya que necesito de las formulas que me generan un resultado, espero que me comprendan y gracias

//Lo edito jhonny para colocar las etiquetas Delphi

jhonny
21-02-2007, 19:37:37
No entiendo porque abría de darte 4 cuando siempre estas multiplicando y dividiendo por los mismos valores...

Pero mas sin embargo y por encima de lo que alcanzo a entenderte te faltaria dividir por 1000 asi:


var
Lcant : integer;
GRegSisPromCon, GRegSisPromLts : string;
aux :real;
t : string;
begin
Lcant := 19;
GRegSisPromCon := '1000';
GRegSisPromLts := '5';
aux := Round((19 * 1000/5)/1000); <----- normalmente de 3800
// aux := round(Lcant * StrToInt(GRegSisPromCon)/ StrToInt(GRegSisPromLts));
// Str(aux:2:0,t);

ShowMessage(FloatToStr(aux)); <- resultado de 3800 y no de 4
end;


Espero te sirva