나는 C로 프로그램을 작성 중이다. 로그 기능을 사용하는 일부 확률 계산을 수행하는 부분이있다. 일반 라이브러리 함수 로그는() ...로그 기능이 잘못되었습니다 !!! 어떤 단서?
코드는 다음과
double somevalue = 0.29558101472995091;
temp = log(somevalue)
그리고 무엇을 생각 같은 것입니다? 임시 직원의 가치는 -1856.0000000000000입니다 !!! 로그에 주어진 값으로
는int main()
{
double somevalue;
double temp;
somevalue = 0.29558101472995091;
temp = log(somevalue);
return 0;
}
Results:
Somevalue = 0.29558101472995091
temp = -1856.0000000000000
미친하지 그것을인가 ... 나도이 테스트 코드를 작성 일부 구조체 내부에서, 그리고 같은 결과를 얻었다. 누구나 여기서 무슨 일이 일어나는가에 대한 단서가 있습니다.
그리고 Visual Studio 2005를 사용하고 있습니다. 지금 다른 컴파일러에 손을 넣을 수 없습니다. 당신의 구문이 올바른지처럼
감사합니다,
마이크로 커널 :
어떻게 임시 직원의 가치를 확인하고 계십니까? printf를 잘못 사용하면 log() 함수가 잘못된 것보다 더 많이 발생합니다. –
참조 용 : log (0.29) = 약 -0.5 –
이 방법은 도움이되지 않지만 gcc에서 실행하면 -1.21881 . – Starkey