В С ++,
const double Pi = 3.14159265;
cout << sin(Pi); // displays: 3.58979e-009
ДОЛЖЕН отображаться номер ноль
Я понимаю, что это потому, что Pi аппроксимируется, но есть ли какой-нибудь способ, которым я могу жестко закодировать значение Pi в моей программе, которое вернет 0 для sin (Pi)? (может быть другая константа?)
В случае, если вам интересно, что я пытаюсь сделать: я конвертирую полярность в прямоугольник, и хотя есть некоторые приемы printf (), которые я могу сделать, чтобы напечатать его как «0.00», он все еще не последовательно возвращать приличные значения (в некоторых случаях я получаю «-0,00»)
Строки, которые требуют греха и косинуса:
x = r*sin(theta);
y = r*cos(theta);
Кстати: мой прямоугольник -> Polar работает нормально ... это просто полярник -> прямоугольник
Спасибо!
edit: Я ищу обходной путь, чтобы я мог вывести на консоль sin (несколько кратных Pi) в виде удобного круглого числа (в идеале без тысячи операторов if)