Kurze Verständnisfrage, int double Ausgabe

T

tdkpaul

PHP:
 int  m;
 double  d=1e89;

 m = d;
 printf("m = d: %d\n" , m);

warum kommt hier m = d: -2147483648 als Ausgabe? Wie kann man das herleiten?
 
Hi.
PHP:
 int  m;
 double  d=1e89;

 m = d;
 printf("m = d: %d\n" , m);

warum kommt hier m = d: -2147483648 als Ausgabe? Wie kann man das herleiten?
Gar nicht. Der Wert des double ist zu groß und konnte nicht in einen Integerwert konvertiert werden.

In dem Fall ist das Ergebnis undefiniert. Je nach Compiler hat m irgendeinen (unbestimmten) Wert.

Gruß
 
Zurück