Como posso contornar o fato de que em C ++, sin (M_PI) não é 0?

Em C ++,

const double Pi = 3.14159265;
cout << sin(Pi);                          // displays: 3.58979e-009

DEVE exibir o número zero

Eu entendo isso porque o Pi está sendo aproximado, mas existe alguma maneira de eu ter um valor de Pi codificado no meu programa que retornará 0 para sin (Pi)? (uma constante diferente, talvez?)

Caso você esteja se perguntando o que estou tentando fazer: estou convertendo polar para retangular e, embora haja alguns truques printf () que posso fazer para imprimi-lo como "0,00", ele ainda não retorna consistentemente decente valores (em alguns casos, recebo "-0,00")

As linhas que requerem pecado e cosseno são:

x = r*sin(theta);
y = r*cos(theta);

BTW: Meu retangular -> Polar está funcionando bem ... é apenas o Polar -> retangular

Obrigado!

editar,: Estou procurando uma solução alternativa para que eu possa imprimir sin (alguns múltiplos de Pi) como um bom número redondo para o console (idealmente sem milhares de declarações if)

questionAnswers(14)

yourAnswerToTheQuestion