float variable spinnt?



  • Abend!

    Ich hänge hier über einem Verhalten, dass ich absolut nicht verstehe!

    float leftYNorm = ...
        if(leftYNorm > 1.0f);
    	leftYNorm = 1.0f; // Zeile A
    

    Dieser Code oben ist das Problem. Ich berechne leftYNorm und wenn der Wert größer als 1 ist, soll er geclampt werden. Seltsamerweise wird der Wert viel zu oft auf 1 geclampt, also hab ich mal einen Breakpoint auf Zeile A gesetzt und was sehe ich da: Er ist in den if block gegangen obwohl leftYNorm z.B. den Wert -0.0112 hat.

    WTF???? Seit wann ist ein negativer Wert größer als 1.0f???? 😕



  • Semikolon zuviel nach if()



  • Der Fehler ist bereits eine Zeile weiter oben und hat gar nichts mit dem float zu tun - das Semikolon hinter dem if() ist eine leere Anweisung (die immer dann ausgeführt wird, wenn die Bedingung erfüllt ist) und die Zuweisung steht dadurch außerhalb der if-Anweisung und wird immer ausgeführt.



  • volkard schrieb:

    Semikolon zuviel nach if()

    OMFG!!!!

    Ich glaub das wäre mir nach einer Stunde noch nicht aufgefallen. 😞

    Danke!


Anmelden zum Antworten