En C++,¿Cómo puedo evitar el hecho de que en C++, sin (M_PI) no es 0?
const double Pi = 3.14159265;
cout << sin(Pi); // displays: 3.58979e-009
que debe mostrar el número cero
entiendo que esto se debe a Pi se aproxima, pero ¿hay alguna manera de que pueda tener un valor de Pi codificado en mi programa que se devuelve 0 por sin (Pi)? (? Una constante diferente quizás)
En caso de que usted se está preguntando lo que estoy tratando de hacer: estoy convirtiendo polar a rectangular, y si bien hay algunos printf() trucos que pueda hacer para imprimirlo como " 0.00" , todavía no regresa constantemente los valores decentes (en algunos casos me sale '-0.00')
Las líneas que requieren el pecado y el coseno son:
x = r*sin(theta);
y = r*cos(theta);
por cierto: Mi rectangular -> Polar está funcionando bien ... es simplemente el Polar -> Rectangular
¡Gracias!
edición: Busco una solución para que pueda imprimir sin (un múltiplo del Pi) como un número redondo a la consola (idealmente sin un millar de declaraciones si-)
3.58979e-009 está muy cerca de cero. Eso es porque el Pi que está utilizando también es un valor "aproximado" de Pi. – Akanksh
sí, sé POR QUÉ está haciendo eso (lo mencioné en la publicación) ... Estoy buscando una solución – Adam
[Lo que todo científico informático debería saber sobre la aritmética de coma flotante] (http://docs.sun.com /source/806-3568/ncg_goldberg.html) –