Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

Re: Wieso lässt sich double in integer nicht umwandeln?

  Alt 29. Mär 2004, 13:26
Zitat von Cuchulainn:
Double (8 Byte) ist viel größer als Integer (32 Bit). Außerdem würden, wenn es gehen würde, die Nachkommastellen abgeschnitten werden, da Integer ein Ganzzahltyp ist.
Also die Umwandlung selber funktioniert, es werden halt nur die höheren 4 Bytes abgeschnitten, aber da die Werte in einem anderen Format gespeichert sind, kommt nur nicht das erwartete raus.


z.B.:
Delphi-Quellcode:
I: LongInt{Integer}; {4 Byte}
S: Single; {4 Byte}
W: LongWord; {4 Byte}
B: Byte; {1 Byte}

I := Integer(S);
I := Integer(W);
I := Integer(B); {das einzige, was mal geht ^^}
B := Byte(I);
Word zu Integer würde gehn, aber nur solange der Wert in Word maximal 2.147.483.647 ist.
Sobald der Wert größer ist, stimmt es nichtmehr

Integer zu Byte geht auch nur im Bereich von 0 bis 255.

Und bei Single stimmt überhaupt nicht's mehr. Denn Typenumwandlungen dieser art wird nicht der Wert (im Speicher) geändert.
$2B or not $2B
  Mit Zitat antworten Zitat