Wie kann ich die Tatsache umgehen, dass sin (M_PI) in C ++ nicht 0 ist?

In C ++,

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

es SOLLTE die Zahl Null anzeigen

Ich verstehe, dass dies daran liegt, dass Pi approximiert wird, aber gibt es eine Möglichkeit, in meinem Programm den Wert Pi fest zu codieren, der 0 für sin (Pi) zurückgibt? (eine andere Konstante vielleicht?)

Wenn Sie sich fragen, was ich zu tun versuche: Ich konvertiere polar in rechteckig, und obwohl es einige printf () - Tricks gibt, die ich tun kann, um es als "0.00" zu drucken, wird es immer noch nicht konsistent zurückgegeben anständige Werte (in einigen Fällen bekomme ich "-0.00")

ie Zeilen, die Sinus und Cosinus erfordern, sin

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

BTW: Mein Rechteck -> Polar funktioniert einwandfrei ... es ist nur das Polar -> Rechteck

Vielen Dank

bearbeiten, Ich suche nach einem Workaround, damit ich sin (ein Vielfaches von Pi) als schöne runde Zahl auf die Konsole schreiben kann (idealerweise ohne tausend if-Anweisungen)

Antworten auf die Frage(14)

Ihre Antwort auf die Frage