Rechengenauigkeit bzgl. Java - Datentypen |
08.11.2010, 10:26 | Auf diesen Beitrag antworten » | ||
pBALA2010 | Rechengenauigkeit bzgl. Java - Datentypen Hallo, ich hätte eine Frage bzgl. den Java- Datentypen Long und Double, genauer im Bezug auf z.B. die Gaussformel s(n) = (n * (n+1) ) / 2. Datentyp: Long mit 8 Byte beinhaltet die ganzen Zahlen von –2^63 bis 2^63 – 1 (–9223372036854775808...9223372036854775807) Datentyp: Double mit 8 Byte enthält dagegen ja reele Zahlen von 4,94065645841246544E-324... 1,79769131486231570E+308 die Frage ist nun, bis zu ca. welchem Wert n des Typs Long die oben genannte Formel eine korrekte Lösung s(n) ausgibt und ob es für die Rechengenauigkeit sinnvoller wäre den Datentyp double zu wählen. Nach meinen Überlegungen müsste doch für alle Werte n deren Ergebnis s(n) <= 2^63 – 1 die Berechnung genau sein, oder übersehe ich da einen technischen Aspekt? Evtl. bei der Berechnung, da z.B. (n * (n+1) ) > 2^63 – 1 sein könnte, oder spielt das keine Rolle? Zum zweiten Teil, ob mit dem Datentyp double eine genauere Berechnung gegeben wäre. Eigentl. müsste es so sein, da der Typ Double einen viel größeren Bereich beinhaltet. Jedoch ist er doch eher für Gleitkommazahlen gedacht. Evtl. kann mir hier ein erfahrenerer Informatiker helfen. Danke. |
||
|
|||
10.11.2010, 10:06 | Auf diesen Beitrag antworten » | ||
ed209 | RE: Rechengenauigkeit bzgl. Java - Datentypen
Für die erste Frage mußt du dir nur überlegen, bei welchen Werten die Berechnung ungenau bzw falsch würde. Für die zweite Frage musst du in Detail gehen und schauen wie die Fließkommazahlen aufgebaut sind. Du kannst ja mal ausprobieren was passiert wenn du den maximalen Wert aus Frage 1 mit doubles berechnest. Gruß, ED209 |
|
Verwandte Themen
Die Beliebtesten » |
Die Größten » |
|
Die Neuesten » |
|