Bernhard Ludwig
2004-12-10 21:49:37 UTC
ja ich schon wieder :)
ich möchte die grösste bzw. kleinste Zahl die sich im Datentyp long double
speichern lässt ausgeben. Alle Quellen die ich gefunden habe behaupten der
Wertebereich des Typs long double geht von 3.4E-4932 bis 1.1E4932.
Folgendes Programm:
#include <stdio.h>
/*#include <limits.h>*/
int main(void){
double zahl_2=1.234567890123456e-308;
long double zahl_3=1.234567890123456e-308;
printf("double Variable: |%lg|\n", zahl_2);
printf("long double Variable: |%Lg|\n\n", zahl_3);
printf("Größe des Datentyps double: %d Bit\n",sizeof(double)*8);
printf("Größe des Datentyps long double: %d Bit\n",sizeof(longdouble)*8);
return (0);
}
die in der Variablen zahl_3 enthalten Zahl ist annähernd die Grenze für den
Datentyp double. Bis zu diesem Punkt liefert die Ausgabe das von mir
erwartete Ergebnis.
Wenn ich jetzt den Exponenten weiter nach oben schraube(bis E-324) liefert
mir die Ausgabe für beide Datentypen 0. Für double nachvollziehbar, aber
warum ist hier auch für long double die Grenze erreicht?
Wo mache ich einen Fehler?
Bernhard
ich möchte die grösste bzw. kleinste Zahl die sich im Datentyp long double
speichern lässt ausgeben. Alle Quellen die ich gefunden habe behaupten der
Wertebereich des Typs long double geht von 3.4E-4932 bis 1.1E4932.
Folgendes Programm:
#include <stdio.h>
/*#include <limits.h>*/
int main(void){
double zahl_2=1.234567890123456e-308;
long double zahl_3=1.234567890123456e-308;
printf("double Variable: |%lg|\n", zahl_2);
printf("long double Variable: |%Lg|\n\n", zahl_3);
printf("Größe des Datentyps double: %d Bit\n",sizeof(double)*8);
printf("Größe des Datentyps long double: %d Bit\n",sizeof(longdouble)*8);
return (0);
}
die in der Variablen zahl_3 enthalten Zahl ist annähernd die Grenze für den
Datentyp double. Bis zu diesem Punkt liefert die Ausgabe das von mir
erwartete Ergebnis.
Wenn ich jetzt den Exponenten weiter nach oben schraube(bis E-324) liefert
mir die Ausgabe für beide Datentypen 0. Für double nachvollziehbar, aber
warum ist hier auch für long double die Grenze erreicht?
Wo mache ich einen Fehler?
Bernhard