Delphi, Gleitkommazahl in Integer casten

März 6th, 2007 Autor: Phillip Kroll -

Borland DelphiEs gibt generell zwei Möglichkeiten eine Gleitkommazahl in eine ganze Zahl umzuwandeln. Man kann entweder runden oder einfach die Nachkommastellen abschneiden, also casten.
Wenn man in Delphi einen Double Wert in einen Integer Wert casten möchte könnte man auf die Idee kommen das folgendermaßen zu tun:

...
var
int : Integer;
dbl : Double;
begin
int := Integer( dbl );
...

Das wird der Compiler aber nicht durchgehen lassen, stattdessen funktioniert folgender Code

...
var
int : Integer;
dbl : Double;
begin
int := Trunc( dbl ); // Trunc(1.9) results in 1
...

Möchte man aus einem Double Wert einen Integer machen und die Nachkommastellen dabei runden, geht dies wie folgt:

...
var
int : Integer;
dbl : Double;
begin
int := Round( dbl ); // Round(1.9) results in 2
...

Weitere Möglichkeiten für die Typumwandlung von Double in Integer sind zwei Methoden, die in der Unit Math zu finden sind: Ceil und Floor. Floor gibt den größten Integer Wert zurück der kleiner als der Übergebene Double Parameter ist und Ceil erledigt das Gegenteil. Hier ein paar Beispiele:

Floor(-2.8); // = -3
Floor(2,8); // = 2
Floor(-1,0); // = -1
Ceil(-2.8); // = -2
Ceil(2,8); // = 3
Ceil(-1,0); // = -1

Bisher keine Kommentare für diesen Eintrag...

0 response(s) to Delphi, Gleitkommazahl in Integer casten

    Kommentare sind für diesen Beitrag geschlossen.