Forum: Mikrocontroller und Digitale Elektronik Frage in C


von Ferrice (Gast)


Lesenswert?

Hallo,

Bräuchte bitte Hilfe in C!
Stehe irgendwie auf der Leitung:


Code:
****************
float x,calc;
x=1023;
calc=(5/x)*x;

ERGEBNIS VON calc ist 5 ---> richtigerweise!!!

aber wenn ich das ganze so schreibe:

float x,calc;
x=1023;
calc=(5/1023)*x;

dann ist calc 0 ---> WARUM???

bitte um hilfe

von jaedle (Gast)


Lesenswert?

Er interpretiert "(5/1023)" als Division von zwei integern, sodass er
den ganzzahligen Anteil von 5 durch 1023 ausgibt, der ist nunmal Null.

Es sollte so funktionieren: ((float) 5 / (float) 1024).

von Ferrice (Gast)


Lesenswert?

bestens..
innerhalb von 10 minuten eine antwort...

danke

von Schoaschi (Gast)


Lesenswert?

probiers mal mit

calc=(5/1023.0)*x;

wenn du das .0 weglässt ist es eine integer division, die sich nicht
gut mit kommastellen verträgt ;-)

ich hoffe es funzt so

mfg schoasch

von Ferrice (Gast)


Lesenswert?

beides funktioniert..

besten dank

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.