Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2012, 01:36   #1
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию MinGW, функция sin глючит или я чтото забыл

В общем странность обнаружил у компилятора MinGW версии 4.6.2
имею код:
Код:
double GMath::PI=acos(-1.0);

int main()
{
    cout<<"PI="<<GMath::PI<<endl;
    cout<<"sin(0)="<<sin(0)<<endl;
    cout<<"sin(PI)="<<sin(GMath::PI)<<endl;
    cout<<"sin(PI/2)="<<sin(GMath::PI/2)<<endl;
    cout<<"sin(-PI/2)="<<sin(-GMath::PI/2)<<endl;
    cout<<"sin(3.14)="<<sin(3.14)<<endl;
    return 0;
}
и его вывод таков:
Цитата:
PI=3.14159
sin(0)=0
sin(PI)=1.22461e-016
sin(PI/2)=1
sin(-PI/2)=-1
sin(3.14)=0.00159265
вопрос, что за?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.12.2012, 01:49   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

А разве что-то не так?

+: в cmath есть M_PI
netrino вне форума Ответить с цитированием
Старый 08.12.2012, 01:54   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

давно синус может быть больше единицы?
тем более насколько помню синус ПИ, должен быть 0.
Цитата:
+: в cmath есть M_PI
спасибо, ток проблему не изменило...
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.12.2012, 01:57   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Дык там на 16 порядков меньше единицы же
1.22461e-016

Нулём быть не может из-за погрешности при представлении иррационального числа в double
netrino вне форума Ответить с цитированием
Старый 08.12.2012, 02:13   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

да...понял ошибку.
неверно расстрактовал это значение.

отдыхать надо больше..
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 08.12.2012 в 02:16.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пусть задано значение X. Найти первое из чисел sin X, sin sin X, sin sin sin X, ... , меньшее по модулю 10-4. hex_91 Visual C++ 1 28.04.2012 23:49
Паскаль Вычислить у - первое из чисел sin х, sin sin x, sin sin sin x, ..., меньшее по модулю 10-4 Kikikiss Помощь студентам 2 25.03.2012 13:58
Функция y=2cos(3пx)sin(пx)+(sin(3пx)/x) ofenod Microsoft Office Excel 5 07.04.2011 03:22
waitfor() или чтото другое? Agnat Общие вопросы по Java, Java SE, Kotlin 0 12.12.2010 23:10
Замерзает, бедняжка или чтото с видюхой edmynt Компьютерное железо 8 19.01.2010 17:09