Hab gerade mein Posting angeschuat und bin verwundert welche Reaktionen solche Fragen auslösen können. Da bekommt der Satz: "Sich über die Konsequenzen des eigenen Handelns bewusst sein" eine große Bedeutung.
Zur Apollons:
4.7. Umwandlung Fließkomma zu Integer
Bei der Umwandlung von Fließkommazahlen in Integerzahlen muß der Exponent auf den Wert 23 gebracht werden (vergl. Abbildung 5). Ist der Exponent 23, so können die unteren 16 Bit der Mantisse direkt als Integerzahl betrachtet werden. Bei diesem Verfahren werden mögliche Überläufe nicht beachtet. Die Fließkommazahl 1.0 * 223 würde die Integerzahl 0 zurückliefern. Die 24 Bit Mantisse würde ohne jede Veränderung als Integerzahl angesehen werden und ihre unteren 16 Bit würden das Ergebnis bilden.
fällt mir nur ein Zitat des Ruhrpott-Weisen Atze ein: Ja, ne is klar !!!!! 😉
Wenn ich mir die Lösung anschaue - auf die ich selbstverständlich auch alleine gekommen bin 😀 - frage ich mich, angeregt von der Diskussion über Typenumwandlung, wie die Lösung:
(x*10)%10
unter C++ umzusetzen wäre. Zwar leuchtet mit ein, dass:
13.98 * 10 = 139.8
und
139%10 = 139 - 13*10 = 9
ist.
Wenn ich aber
float x = 13.98;
int n = (x*10)%10;
cout << n << "\n";
compiliere bekomme ich eine Fehlermeldung
invalid operands of types 'float' and 'int' to binary
was mir ja einigermassen einleuchtet, da ich eine Modulodivision auf ein Gleitpunkttyp anwende. Also komme ich ohne der besagten Typen umwandlung nicht aus
float x = 13.98;
int n = (int(x*10))%10;
cout << n << "\n";
Oder verwechsle ich da etwas - für Anregungen bin ich sehr dankbar !!!!
Gruß
Arthur
PS
Here I'm Python !!!