sinf () y cosf () en la aplicación iOS

Posible duplicado:
¿Por qué no sin () devuelve el valor correcto aquí?

Estoy construyendo una aplicación que realizará operaciones matemáticas como sine ( sinf() ) y coseno ( cost() ) en floats . Ahora, cuando intenté calcular el seno en 90 (que es 1), obtuve un resultado de 0.89 … lo cual es tremendamente erróneo. ¿Hay alguna razón por la cual el resultado está tan apagado? ¿Hay alguna forma de mejorarlo? He intentado usar el double lugar de float y obtuve la misma respuesta … ¿Es posible que sea solo como cuando lo ejecuto en el simulador y funciona bien en un iPhone real? Y, por último, ¿utilizará un analizador matemático como GCMathParser o DDMathParser mejorar la precisión de los resultados?

Gracias, :]

    El problema es que está tomando el seno de 90 radianes, no de grados. Pruebe el pecado (M_PI_2) por 90 °

    Las funciones usan radianes, no grados.

    Para convertir grados a radianes, use grados * π / 180, de modo que puede hacer algo parecido a pecado (90 * M_PI / 180) que se networkinguce a π / 2 o M_PI_2

    ¿Por qué no sin () devuelve el valor correcto?

    Las funciones sinf y cosf utilizan radianes. Tienes que convertir primero:

     float result = sinf(yourDegree / 180 * M_PI); 

    Como siempre: estas funciones funcionan en radianes , no en grados.

    Intente calcular el seno de π/2 , que es de 90 ° en radianes.

    Las funciones trigonométricas en el objective-c toman angularjs en radianes. Estás dando la discusión en grados. El pecado de 90 radianes es 0.89.

    ver:

    http://www.wolftwiglpha.com/input/?i=sin%2890+rad%29

    Para convertir a grados, simplemente divide el número de grados en 180 y multiplica por pi (3.14159 es lo suficientemente bueno como una aproximación)

    Una vez convertido, la respuesta es 1 como se esperaba.

    http://www.wolftwiglpha.com/input/?i=sin%2890 * pi% 2F180 + rad% 29