Zitat Zitat von PicNick
Damit er erst "zahl * 1000" rechnet und dann erst auf integer brauchst du genaugenommen:
zahl_int = (uint16_t)( (float)zahl * (float)1000) ;
sonst wandelt er erst um (0,1152 --> 0) und multipliziert danach.
Nö,

er weiß beim berechnen noch nix von uint16_t. Er sieht erst zahl ist float und rechnet eh mit float typen. 1000 ist in diesem Fall auch vom Type float.

Daher auch das Problem mit der ersten Zeile. Es sind nur int Werte. und damit rechnet er, um das Ergebnis dann in float zu wandeln.

Gruß

Jens