2017-11-25 5 views
1

다음 코드가 모든 입력에 대해 -2.000000으로 대답하는 이유는 무엇입니까?long double에 대한 음수 출력

#include <stdio.h> 
#include <math.h> 

int main() 
{ 

    long long int s1,s2; 
    long double l,y,m=sqrt(2); 

    scanf("%Lf %lld %lld",&l,&s1,&s2); 

    y=l*m; 
    printf("%Lf\n",y); 
} 
+1

재현 할 수 없습니다. https://ideone.com/H2KRHF – mch

+0

헤더가 누락 되었습니까? 모든 경고와 함께 컴파일 (-GCC 용) –

+0

Ok, 어떤 컴파일러, 어떤 OS를 사용하고 있습니까? 그리고 어떻게 코드를 컴파일하고 링크하고 실행합니까? – alk

답변

0

컴파일러 설정에서 부동 소수점 환경을 이상하게 수정했을 수 있습니다. 어쩌면 지수를 나타내는 비트가 숫자 자체를 나타낼 수도 있습니다.