Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: kanc en 15 de Noviembre de 2013, 04:51:51 PM

Título: Pregunta tonta sobre C y la funcion sin
Publicado por: kanc en 15 de Noviembre de 2013, 04:51:51 PM
Buenas,

Soy un novatillo con el C/C++ y programandome una clase matriz me encuentro lo siguente:

float test = sinf(M_PI);

y test vale -8.74...... lo cual no tiene ningun sentido. Si no he entendido mal, la funcion devuelve un float con el valor del seno del angulo pasado en radianes... ¿os ha pasado?¿tipo error de noob?

Gracias!
Título: Re:Pregunta tonta sobre C y la funcion sin
Publicado por: Marci en 15 de Noviembre de 2013, 10:00:54 PM
Cita de: kanc en 15 de Noviembre de 2013, 04:51:51 PM
float test = sinf(M_PI);

Despues de 8,74 te debe de salir algo parecido a exp -8. Lo cual viene siendo 0,0000000874 o lo que es lo mismo, casi 0.0. Usando un dato de tipo float no obtendrás valores exactos (puesto que acarrean errores de precisión) sino valores muy cercanos al valor real.
Título: Re:Pregunta tonta sobre C y la funcion sin
Publicado por: technobroken en 17 de Noviembre de 2013, 11:31:41 AM
Para saber si es cero tendrás que crearte un función por ejemplo bool eq_zero(float value) { return (val<ZERO && val>-ZERO); } donde ZERO sera algo así como #define ZERO 0.000001f, donde añadirás tantos ceros como precisión quieras tener.
Título: Re:Pregunta tonta sobre C y la funcion sin
Publicado por: kanc en 18 de Noviembre de 2013, 01:04:40 PM
Muchas gracias! teniais razon, efectivamente al final de la ristra de numeros estaba el exp008  :grrr:

como ya dije soy un poco "nub"  :-\

Saludos!