float und Kommastellen



  • Hallo Gemeinde ich habe hier beim rechnen vermutlich ein Rundungsproblem.

    Taschenrechner: der Sinus aus 45 ergibt: 0,707106781 gerundet 0,7

    float y = sin(45);
    

    Da kommt 0.850904 das ist aber nichtmal ansatzweise richtig. Kann mir jemand sagen was da falsch läuft?



  • Du musst vorher deine Gradzahl in Radian umwandeln:

    sinf( 45.0f * PI / 180.0f  )
    


  • 0.85 ist richtig...

    nur halt eben als Radiant wert also das Bogenmaß

    entweder wandelst du den eingehenden wert in radiant um doer den ausgehenden

    irgendwas mit 180 * pi oder so

    wie mein vorredner sagte



  • M_PI müsste das Define aus <cmath> sein.

    Von rad zu deg: / M_PI * 180
    Von deg zu rad: * M_PI / 180



  • Skym0sh0 schrieb:

    0.85 ist richtig...

    nur halt eben als Radiant wert also das Bogenmaß

    entweder wandelst du den eingehenden wert in radiant um doer den ausgehenden

    irgendwas mit 180 * pi oder so

    wie mein vorredner sagte

    Das stimmt so aber nicht. Die sin Funktion erwartet Werte in radiant.
    Der Funktion Grad-Werte zu übergeben und das Ergebnis nachträglich umformen ergibt definitiv falsche Werte!


Anmelden zum Antworten