Wie viele Kommastellen hat eine Zahl?
-
Ich weiß! Das hat was mit was mit dem Binärsystem zu tun. weil z.B.
double zahl = 0.001; if (zahl*3 == 0.003) ...
Diese Bedingung wäre falsch, weil 0.001 binär eine periodische Zahl ist und somit der verglich im klartext so lauten würde
if (0.002999.....716 == 0.003)
Was soll ich jetzt machen?
-
Fat-J schrieb:
Hätte wohl gleich im Java Forum um Hilfe bitten müssen.
Das habe ich nur geschrieben, weil ich gedacht habe, dass es doch sicherlich eine andere Lösung geben muss.
-
Fat-J schrieb:
Was soll ich jetzt machen?
runden.
Bye, HTTP.
-
Brummm schrieb:
TGGC schrieb:
CStoll schrieb:
einige Zahlen (z.B Π oder 1/3) haben unendlich viele Stellen.
Und wie schaffst du es, die in ein double zu speichern?
Bye, TGGC (Demo or Die)
Jetzt weißt du, wozu man 1 GiB RAM braucht.
Und wozu brauchst du ein GiB RAM, wenn ein double ohnehin nur eine länge von 8byte hat?
-
Ab 0.5 rundet er auf? Wann will ich auf wann will ich abrunden? Soll ich mit Math.ceil immer aufrunden? oder ...
Funzt normalerweise nicht.
-- Fat-J
-
Fat-J schrieb:
Ab 0.5 rundet er auf? Wann will ich auf wann will ich abrunden? Soll ich mit Math.ceil immer aufrunden? oder ...
Funzt normalerweise nicht.
-- Fat-J
du kannst prüfen ob:
|a-b| < epsilon,wobei epsilon mehr oder weniger klein ist. wie dus brauchst.
-
Du kannst ja auch BCDs verwenden.
-
Was ist epsilon?
Was sind BCDs?-- Fat-J
-
Epsilon ist die kleinstmögliche Zahl, die von einem float dargestellt werden kann.
BCD steht für Binary Coded Decimals. Dabei werden Zahlen im Dezimalformat (eine Ziffer kann Werte von 0 bis 9 annehmen) gespeichert und jeweils 4 Bit pro Ziffer verwendet. x86 Prozessoren haben sogar Instructions für BCDs eingebaut, weil sie in einigen mathematischen Anwendungen verwendet werden. Manche Taschenrechner verwenden afaik auch BCDs.
-