Wie groß eine Zahl kann Sie speichern in double und float in c?

Ich versuche, genau herauszufinden, wie groß die Zahl, die ich verwenden kann als Gleitkommazahl mit und double. Aber es speichert nicht den Weg, den ich erwartet außer integer-Wert. double halten sollte 8 bytes von Informationen, die genügend Platz für eine variable ein, aber Sie hält ihn nicht richtig. Es zeigt 1234567890123456768 in die letzten 2 Ziffern sind anders. Und wenn ich gespeichert 214783648 oder jede Ziffer die Letzte Ziffer in der float-Variablen b es zeigt den gleichen Wert 214783648. das soll ja die Grenze. Also, was ist Los?

double a;
float b;
int c;
a = 1234567890123456789;
b = 2147483648;
c = 2147483647;
printf("Bytes of double: %d\n", sizeof(double));
printf("Bytes of integer: %d\n", sizeof(int));
printf("Bytes of float: %d\n", sizeof(float));

printf("\n");

printf("You can count up to %.0f in 4 bytes\n", pow(2,32));
printf("You can count up to %.0f with + or - sign in 4 bytes\n", pow(2,31));
printf("You can count up to %.0f in 4 bytes\n", pow(2,64));
printf("You can count up to %.0f with + or - sign in in 8 bytes\n", pow(2,63));

printf("\n");

printf("double number: %.0f\n", a);
printf("floating point: %.0f\n", b);
printf("integer: %d\n", c);

return 0;
verwenden %zu drucken Sie die o/p sizeof
Alle definiert in der header-Datei limits.h.
Speichern Sie UNENDLICH! =)

InformationsquelleAutor Jin kim | 2015-07-10

Schreibe einen Kommentar