Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Pregunta tonta sobre C y la funcion sin

Iniciado por kanc, 15 de Noviembre de 2013, 04:51:51 PM

« anterior - próximo »

kanc

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!

Marci

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.

technobroken

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.

kanc

Muchas gracias! teniais razon, efectivamente al final de la ristra de numeros estaba el exp008  :grrr:

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

Saludos!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.