Diskussion:C-Programmierung: Typumwandlung
Letzter Kommentar: vor 2 Jahren von Zebaba in Abschnitt Genauigkeit int -> float
Einschränkende Typumwandlung
BearbeitenWarum sollte bei der einschränkenden Typumwandlung ausschließlich explizite Typumwandlung verwendet werden? -- Tantalum 01:15, 30. Dez. 2007 (CET)
- Eine explizite Typumwandlung ist eine die man syntaktisch möchte und lässt keinen Zweifel darüber ob man genau das möchte. Ungewollte Typumwandlungen (vergessene Typumwandlungen) sind häufig Fehlerquellen und meistens sogar die Ursache von sehr schwer zu findenden Fehlern. -- ThePacker 01:52, 30. Dez. 2007 (CET)
Genauigkeit int -> float
Bearbeiten"Wandeln wir int
in float
um, wird impliziert erweitert, d. h. es geht keine Genauigkeit verloren."
Das stimmt - so allgemein ausgedrückt - m.E. nach nicht.
Wenn int z.B. eine long int ist (32-bit), so können zumindest manche Zahlen, die größer als 2^24 sind, nicht genau dargestellt werden, d.h. es kann sehr wohl Genauigleit verloren gehen. Das liegt daran, dass die Mantisse der Float nur mit 23 Bits dargestellt wird. Beispiel:
int a= 16777217;
float b= a;
Dann ist b= 16777218,0 binär kodiert zu 0x4B800001.
.--Zebaba 16:35, 7. Jul. 2022 (CEST)