Delphi XE2 i Floor
06.08.2013. u 18:56 · pre 160 meseci
#1
Naišao sam na sljedeći problem
Ova funkcija vraća 665
Ovaj vraća 664
Dovoljno je da samo jednom pritisnem bilo koji taster (shift recimo) dok je program aktivan i ova druga vraća 665
Kada u unit forme kopiram Floor funkciju iz Delphi source-a
pa nju pozivam umjesto Math.Floor, obje funkcije vraćaju istu vrijednost (665)
O čemu se ovdje radi?
Ova funkcija vraća 665
Code:
function TMainForm.f2: integer;
var
r: double;
begin
r := (100) * 664/100;
Result := Math.Floor(f) + 1;
end;
function TMainForm.f2: integer;
var
r: double;
begin
r := (100) * 664/100;
Result := Math.Floor(f) + 1;
end;
Ovaj vraća 664
Code:
function TMainForm.f1: integer;
var
r: double;
begin
r := 664/100;
Result := Math.Floor((100) * r) + 1;
end;
function TMainForm.f1: integer;
var
r: double;
begin
r := 664/100;
Result := Math.Floor((100) * r) + 1;
end;
Dovoljno je da samo jednom pritisnem bilo koji taster (shift recimo) dok je program aktivan i ova druga vraća 665
Kada u unit forme kopiram Floor funkciju iz Delphi source-a
Code:
function Floor(const X: Double): Integer;
begin
Result := Integer(Trunc(X));
if Frac(X) < 0 then
Dec(Result);
end;
function Floor(const X: Double): Integer;
begin
Result := Integer(Trunc(X));
if Frac(X) < 0 then
Dec(Result);
end;
pa nju pozivam umjesto Math.Floor, obje funkcije vraćaju istu vrijednost (665)
O čemu se ovdje radi?