C - double - Überlauf oder nicht
- 
					
					
					
					
 Nach den maximalen Werten kommt 
 @DirkB sagte in C - double - Überlauf oder nicht:IEEE 754 kennt übrigens auch +inf und -inf für +/- Unendlich 
 
- 
					
					
					
					
 äh ich meinte 3.30000E+38 + 0.00001E+38 = 3.30001E+38 
 
- 
					
					
					
					
 @JamesNguyen Versuch es doch selber https://www.h-schmidt.net/FloatConverter/IEEE754de.html Da kannst du 3.3e38 eingeben und dann bei der Mantisse ein paar Kästchen an/ausschalten (von rechts her) 
 
- 
					
					
					
					
 oh man ist das dämlich also wenn das stimmt dann ist ja 3.3E+38 (wieso steht eig hier bei der mantisse 1.939565658569336 hätte gedacht das ist die zahl vor dem komma) 329999996548271212625250308919809540096 und die eig größte Zahl ist 3.40282346639e+38 bzw. wieder 340282346638528859811704183484516925440 mit allen Häckchen wieso stehen im internet dann überhaupt grenzen wie 3.3E+38 da und ich schau die nach und verwende die dann für vergleiche mit > 
 und dann stimmt das nicht..
 
- 
					
					
					
					
 @JamesNguyen sagte in C - double - Überlauf oder nicht: (wieso steht eig hier bei der mantisse 1.939565658569336 hätte gedacht das ist die zahl vor dem komma) Beachte das Zahlensystem. Die Mantisse ist immer von 1 bis kleiner 2 @JamesNguyen sagte in C - double - Überlauf oder nicht: wieso stehen im internet dann überhaupt grenzen 
 wie 3.3E+38 da und ich schau die nach undEs gibt noch andere Darstellungen von Fließkommazahlen. 
 Und die durften früher auch benutzt werden.verwende die dann für vergleiche mit > 
 und dann stimmt das nicht..Dafür gibt es die Makros in <float.h> wurde aber auch schon geschrieben) 
 
- 
					
					
					
					
 ok kapiert, praktisch holt man sich die max min werte aus den bibliotheken, da ich das nicht so richtig gelernt haben sollte verzichte ich denke ich auf solche abfragen einfach ich denke die aufgabe ist nicht im sinne davon zu schauen ob in einem iterationsschritt möglicherweise bei der berechnung datentypwertegrenzen überschritten werden Aber grundsätzlich wenn ich bspw. eine FUnktion habe double funktion ( double xN) return xN + xN ; wäre es hier sinnvolle vorher abzufragen und zusagen if (xN > größte double zahl/2 ) -> mache die berechnung nicht ? 
 
- 
					
					
					
					
 @JamesNguyen sagte in C - double - Überlauf oder nicht: wäre es hier sinnvolle 
 vorher abzufragen und zusagen
 if (xN > größte double zahl/2 ) -> mache die berechnung nicht
 ?Wenn dein Programm dann nicht mehr richtig läuft: Fehlermeldung und Berechnung abbrechen. 
 Wie und wo, hängt vom Programm ab.Aber vielleicht reicht auch der Maximale Wert noch aus, damit das Programm funktioniert. Die Berechnung zu unterschlagen, ist der falsche Weg. 
 
- 
					
					
					
					
 ok bist du dir sicher das wenn ich gesichtert behaupten kann xN ist größer als die Hälfte des maximalen double werts das xN + xN noch einen korrekten wert, d.h. das gewünschte ergebnis der summe liefert? (wenn der rückgabewert auch vom typ double ist) kann das überhaupt sein? 
 
- 
					
					
					
					
 @JamesNguyen sagte in C - double - Überlauf oder nicht: xN ist größer als die Hälfte des maximalen double werts 
 das xN + xN noch einen korrekten wert, d.h. das gewünschte ergebnis der summe liefert?Dann wird das auf inf hinauslaufen. Was ich meinte ist, dass es von der Anwendung abhängt was dann passiert soll. 
 
- 
					
					
					
					
 bedeutet es das man also bei double den gewünschte effekt wie bei anderen programmiersprachen hat also das man in dem fall nicht auf überläufe und sowas achten muss sondern eben inf raus kommt?