2017-11-25 2 views
1

Warum gibt der folgende Code die Antwort als -2.000000 für jeden Eingang?Negativer Ausgang für langes Doppel

#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

Ich kann nicht reproduzieren: https://ideone.com/H2KRHF – mch

+0

Fehlende Überschriften? Kompiliere mit allen Warnungen (-Wall for gcc) –

+0

Ok, welchen Compiler, welches OS verwendest du? Und wie kompilieren und verlinken Sie den Code? – alk

Antwort

0

Sie haben möglicherweise eine seltsame Änderung an Ihrer Fließkommaumgebung in den Compilereinstellungen vorgenommen. Vielleicht repräsentiert das Bit, das den Exponenten darstellt, jetzt die Zahl selbst.