java ermittlet ein falsches Ergebnis bei bestimmte berechnung von double?

... komplette Frage anzeigen

3 Antworten

Ein Computer kann nicht jede Zahl anzeigen, daher speichert er Zahlen mit Nachkommastelle als Gleitkommazahl und rundet dann. In diesem Beispiel hat der Computer zwei verschiedene Gleitkommazahlen erzeugt. Werden sie gerundet sind sie gleich, aber für den Computer sind es zwei verschiedene Zahlen.

https://de.wikipedia.org/wiki/Gleitkommazahl

Antwort bewerten Vielen Dank für Deine Bewertung

Du solltest Dich über die Verwendung von Fließkomma-Zahlen informieren.

Man vergleicht keine doubles, floats oder extendeds auf Gleichheit, weil die zugrundeliegenden Datenfelder keine dichte Repräsentation von R oder Q gewährleisten.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von CalvinSchneider
14.11.2015, 11:23

Natürlich, float ist ja ein komplexer datentyp, hatte ich ganz vergessen. Der Befehl equal(,) sollte aber funktionieren oder?

Ist meine Antwort ansich aber auch korrekt gewesen?

1

Bei der ersten Berechnung ist der Dividend ein Integer darum ist der Quotient ein Integer der dann implizit zu Double konvertiert wird.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von CalvinSchneider
14.11.2015, 11:25

probier mal bei der ersten berechnung parsedouble(1138) zu verwenden

0
Kommentar von Mikkey
14.11.2015, 11:30

Ist das so? Dann ist das natürlich auch ein Grund.

0

Was möchtest Du wissen?