Foros Club Delphi

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

CFPA86 21-02-2007 19:09:44

Problema con round()
 
Hola a todos y todas, tengo un problema al redondear un numero, tengo este codigo
Código Delphi [-]
 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:

Código Delphi [-]
 
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


La franja horaria es GMT +2. Ahora son las 17:17:22.

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