Rundungsfehler bei Float

    • Offizieller Beitrag

    Hi ich lese eine Zahl aus einer Spinbox aus. Diese Zahl ist ein Floatwert. Diese Zahl wird aus der Spinbox in eine eine Variable geschrieben. Der Wert der Variable wird in einen Rotator umgewandelt und auf den selectierten Actor weiter gegeben.



    Ich habe direkt beim Output der Spinbox eine Round Node eingebaut Damit sollte doch der Float in eine Ganzzahl umgewandelt werden oder ?


    Gebe ich in meiner Spinbox einen Wert ein in meinem Beispiel 65


    Das ist das auch keine nachkommazahl.


    Mit einem Printstring bekomme ich ebenfalls den Wert 65 ausgegeben


    Soweit alles korrekt.


    Im Outliner zeigt es mir dann aber diese Zahl an:


    Umso höher die Zahl, umso gravierender sind die Rundungsfehler wenn ich zb 219 eingeben bekomme als Wert -141,000015 ausgeben. Das ist natürlich komplett falsch.


    In der Spinbox hab ich eingestellt das der Minimalwert 0 und der Maximalwert 360 sein darf.


    Ich hab auch schon versucht statt Float eine Integer Variable zu nehmen. Ich muss Integer in einen Float umwanden, weil die Spinbox nur Float kann. Hatte auch mit einer Integer Variable das selbe Problem.


    Egal ob mit Round oder ohne es geht nicht.


    Warum ?

  • Im Outliner zeigt es mir dann aber diese Zahl an:

    Das ist das Problem an Float, es ist nicht 100% genau...


    Umso höher die Zahl, umso gravierender sind die Rundungsfehler wenn ich zb 219 eingeben bekomme als Wert -141,000015 ausgeben. Das ist natürlich komplett falsch.

    Das ist nicht falsch, eine Rotation geht von -180 bis 180.

    219 - 360 = -141 ^^


    Egal ob mit Round oder ohne es geht nicht.

    Schon mal ohne den Rotator versucht?