Alles anzeigen
sehr schönes beispiel. mit dem typecast, also das (int) reißt du dem fFloat einfach alles ab dem Komma weg - da wird IMMER abgerundet (WICHTIG!).
also steht da:
iInteger *= 32;
oder eben etwas ausführlicher:
iInteger = iInteger * 32;
und das gibt 96.
Ohne den typecast bin ich mir grad gar nicht sicher, ob er da überhaupt was sinnvolles rechnet, dachte eigentlich dass er versucht, den float aus dem speicher als int auszulesen und somit quatsch rauskommt - dem kommentar nach macht er aber im prinzip folgendes:
iInteger *= fFloat;
wieder etwas ausführlicher:
iInteger = iInteger * fFloat;
bedeutet:
iInteger = 3 * 32.48;
und das würde 97,44 ergeben. Int kann aber nur Ganzzahlen speichern, das heißt: alles ab dem Komma wird weggeschnitten und somit ergibt es 97...
Ich könnte dir noch mit meinem Script C aus dem letzten Semester dienen - vielleicht hilfts dir ja weiter.
Schick mir deine Mailadresse mal per PN, dann lass ichs dir zukommen
Viele Grüße,
Valentin
Ja richtig lesen hilft.
Danke dir. Jetzt bin ich schon mal ein Stück weiter. Irgendwie hab ich den cast des Floats nicht richtig gelesen oder ignoriert, keine Ahnung.
Und natürlich ist
iInteger *= (int) fFloat;
nichts anderes wie
iInteger = iInteger * (int) fFloat;
Boah ich glaube, ich sollte mal einen Tag pause machen oder was anderes Lernen. Ich danke dir jedenfalls bei dem konkreten Beispiel.