Kommazahl aus einer Division



  • Hey,

    bei mir kommt nach dieser Rechnung einfach keine Kommazahl raus, obwohl es ersten offensichtlich ist das da kein gerades Ergebnis rauskommen kann und zweitens hab ich es mit dem Taschenrechner nachgerechnet!

    float verX, verY;

    verX = remote_Width / RemoteImage->Width;
    verY = remote_Height / RemoteImage->Height;

    zB: -> 1400 / 720 soll dann 1 sein.



  • Ich vermute mal, daß remote_Width und RemoteImage->Width Integer-Werte sind.
    Funktioniert es, wenn Du den Code wie folgt änderst:

    verX = (float) remote_Width / (float) RemoteImage->Width;
    

    Es gibt da Regeln betreffend des impliziten Typecastings durch den Compiler. In diesem Fall scheint es mir so, daß erst die beiden Integerwerte dividiert werden und das daraus resultierenden Integerergebnis in einen Float gewandelt wird. Durch das explizite Umwandeln der Integerwerte in Floats vor der Division sollte auch ein Float-Ergebnis herauskommen.



  • Du mußt die Integerwerter vor der Division nach float casten. Sonst wird, wie hier, mit den Integerwerten gerechnet und das Ergebnis erst bei der Zuweisung an das Ergebnis nach float gewandelt.

    [Edit] Mal wieder zu langsam...



  • optimal!

    warum bin ich da nicht selber drauf gekommen !!

    tHx 😉

    just, t0b4d


Anmelden zum Antworten