Einzelnen Beitrag anzeigen

hansmaad

Registriert seit: 25. Feb 2010
52 Beiträge
 
Delphi 2010 Professional
 
#1

Ceil Floor Log10 - Rundungsfehler, Überlauf o.ä. (?)

  Alt 18. Mai 2011, 12:36
Delphi-Version: 2010
Hallo zusammen,
ich steh gerade total auf dem Schlauch und kann mir den folgenden Fehler nicht erklären:

Delphi-Quellcode:
procedure Test(min, max : Double);
var
    x : Integer;
    a, b : Double;
begin
    x := Ceil(Log10(max)) - Floor(Log10(min)) + 1;
    WriteLn(x);

    a := Log10(max);
    b := Log10(min);
    x := Ceil(a) - Floor(b) + 1;
    WriteLn(x);
end;

begin
    Test(1e-2, 1e8);
    Test(1e-2, 1e7);
    Test(1e-2, 1e6);
end.
Code:
11
11
11
10
9
9
Die Ausgabe sollte natürlich sein:
Code:
11
11
10
10
9
9
  Mit Zitat antworten Zitat