Sinus von Wickel bestimmen, mit NSLog ausgeben

  • Sinus von Wickel bestimmen, mit NSLog ausgeben

    Hallo

    ich steh grad voll auf dem Schlau.

    float sin =sin(45.0f);

    NSLog("sinus %f",sin); // an dieser Stelle stürzt die Anwendung ab wenn die Zeile auskommentiert ist läuft es normal weiter

    waring:passing argument 1 of `NSLog´ from incompatible type

    trotz "float sin" geht es mit %f nicht zu loggen.

    Nur womit dann?

    Danke
  • Hallo 322

    Zwei Dinge denke ich gilt es zu beachten: erstens, die Funktion double sin(double x); erwartet als Parameter einen Wert im Bogenmass und zweitens liefert sie einen double und keinen float zurück...
    Versuch es mal mit der Funktion float sinf(float x);
    Und als kleine mathematische Auffrischung: Winkel im Bogenmass = Winkel in Grad * PI / 180 ;)


    Gruss
    Teddy
  • Habe allerlei Varianten ausprobiert, jedoch lies sich das Programm nicht zum weiterlaufen überreden. Ich erhalte nach wie vor die selbe Fehlermeldung.

    Versuch eins:

    double grad=45*3.14/180;

    double sinus =sin(grad);

    NSLog("sinus %f",sinus);

    Ergebnis: Programm stürzt ab


    Versuch zwei:

    float grad=45;


    float sinus =sinf(grad);

    NSLog("sinus %f",sinus);

    Ergebnis: Programm stürzt ab

    ist bestimmt nur eine Kleinigkeit, aber kann echt nerven.
  • Versuch mal folgenden Code (funktioniert so bei mir) :

    Quellcode

    1. float sinus = sinf(45.0 * M_PI / 180.0);
    2. NSLog(@"sinus: %f", sinus);

    Habe noch vergessen zu erwähnen, dass auch sinf mit dem Bogenmass arbeitet... (und M_PI ist eine nette kleine Konstante mit der du gröbere Rundungsfehler vermeidest ;) )


    Teddy

    PS: Habe gerade kleinweby's Nachricht gelesen, welcher das eigentliche Problem erkannt hat :D
    Ich habe am falschen Ort gesucht (dein fehlendes @ ist mir gar nicht aufgefallen...)
  • für gewöhnlich bin ich recht hart gesotten, wenn es heißt "na gut haben wir nur ein bisschen daneben gelegen", aber die Nummer hier ist mir dann doch mal richtig peinlich!!! :D


    es lag tatsächlich am vergessenen @ oh mein Gott
    Vielen Dank


    double grad=(90.0f * M_PI / 180.0f);
    double sinus =sin(grad);
    NSLog(@"sinus %f",sinus);