Hallo! Ich arbeite mit dem stm32f103vdt6 und dem uVision von Keil.
1 | float Ta = 5 / 1000; |
2 | float Tx = (5 * 0.001); |
wenn ich dies im Watchregister anzeigen lasse, bleibt Ta immer 0 und Tx ergibt 0.005. Wieso? Danke und Gruss! M.B.
|
Forum: Mikrocontroller und Digitale Elektronik Multiplikation / DivisionHallo! Ich arbeite mit dem stm32f103vdt6 und dem uVision von Keil.
wenn ich dies im Watchregister anzeigen lasse, bleibt Ta immer 0 und Tx ergibt 0.005. Wieso? Danke und Gruss! M.B. M. B. schrieb: > Wieso? Weil das so definiert ist. Standardmäßig wird in int gerechnet, es sei den einer der Operanden ist (wie z.B. dein 0.001) flaot. Der Ergebnistyp hingegen ist erst mal "egal". M. B. schrieb: > Wieso? Weil 5 / 1000 in Ganzzahlarithmetik durchgeführt wird. Damit das herauskommt, was Du erwartest, muss mindestens ein Wert vom Typ float sein. Also meinetwegen 5.0 / 1000 oder (float)5 / 1000 Christian Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
|
|