Я отлаживал свой проект и не мог найти ошибку. Наконец я нашел его. Посмотрите на код. Вы думаете, что все в порядке, и результат будет «ОК, хорошо! Хорошо!», Не так ли? Теперь скомпилируйте его с помощью VC (я пробовал vs2005 и vs2008).Visual C++ math.h ошибка
#include <math.h>
#include <stdio.h>
int main() {
for (double x = 90100.0; x<90120.0; x+=1)
{
if (cos(x) == cos(x))
printf ("x==%f OK!\n", x);
else
printf ("x==%f FAIL!\n", x);
}
getchar();
return 0;
}
Волшебная двойная константа - 90112.0. Когда x < 90112.0 все в порядке, когда x> 90112.0 - Нет! Вы можете изменить cos на грех.
Любые идеи? Не забывайте, что sin и cos являются периодическими.
Вы проживаете ошибка - вы не локализовать. (HTTP: //en.wikipedia.org/wiki/Internationalization_and_localization) –
oops, извините: - [ – f0b0s
Я ВЫСОКО сомневаюсь, что есть ошибка в math.h ... –