Java: float ungenauer als double?

... komplette Frage anzeigen

4 Antworten

generell kannst du jede Kommazahl (Float) auch als Ganzzahl (Integer, Long) schreiben. Oft wird ein Wert "4.32" lieber als "432" gespeichert, weil ein einfacher Integer weniger Bit hat als Float. Bei Double ist es genau andersrum. Float hat 32bit (4 byte pro Wert), Double-Precision Float hat (wie der Name vermuten lässt) 64bit (8 Byte pro Wert).

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von profil10
22.11.2016, 13:10

Sehr gut erklärt

1
Kommentar von NoHumanBeing
22.11.2016, 13:13

Nein, das ist nicht der Grund.

Sowohl ein "int", als auch ein "float" sind 32 Bit lang.

Man versucht, Gleitkommazahlen zu vermeiden, da sie nur eine beschränkte Genauigkeit (die so genannte Maschinengenauigkeit) haben. Gerade wenn man mit Geld rechnet ist es daher wesentlich sinnvoller, den Betrag in Cent als Ganzzahl zu speichern und nicht als Gleitkommazahl in Euro.

3

"double" ist genauer, als "float".

"double" ist eine 64-bit Gleitkommazahl, "float" eine 32-bit Gleitkommazahl.

"double" hat eine Genauigkeit von ca. 15 - 17 Dezimalstellen.

"float" hat eine Genauigkeit von ca. 6 - 9 Dezimalstellen.

Die untere Schranke gibt an, wie viele Dezimalstellen Du in einen "float"/"double" umwandeln kannst, sodass Du die Zahl anschließend auf genau diese Anzahl an Dezimalstellen wieder bekommst.

Die obere Schranke gibt an, wie viele Dezimalstellen Du angeben musst, um genau zu definieren, welches Bitmuster der "float"/"double" hat. So viele Stellen musst Du also ausgeben, um den Wert des "float"/"double" eindeutig zu identifizieren.

Antwort bewerten Vielen Dank für Deine Bewertung

Double arbeitet mit 64 bit, Float dagegen nur mit 32 bit, daher kann man mit Double einen grösseren Zahlenbereich abdecken. Dies sollte man bei kritischen mathematischen Berechnungen berücksichtigen.

Antwort bewerten Vielen Dank für Deine Bewertung

Float ist ungenauer als Double, weil Double mehr Bits speichert, also auch mehr Informationen über die Nachkommastellen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Alphonse
22.11.2016, 13:07

Stimmt. hab gerade noch zusätzlich gegooglet. aber double hat doch weniger Nachkommastellen als float , oder andersherum?
heißt mehr Nachkommastellen auch bessere Genauigkeit?

1