Rechengenauigkeit bzgl. Java - Datentypen

Neue Frage »

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.
 
Auf diesen Beitrag antworten »
ed209 RE: Rechengenauigkeit bzgl. Java - Datentypen

Zitat:

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.



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
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »