Mathematik unter Java
-
hallo Leute,
mir ist eben so eingefallen - eigentlich verdrängt man soetwas ja immer, dass wir mit der Begrenzung der Zahlen (z. B. double 8 Byte ~ Zahlen) ja unter Java keine unendlich große Zahlenmenge (wie z. B. die reelen Zahlen in der Mathematik) zur Verfügung steht.
deswegen habe ich mir mal die Frage gestellt, was die nächstkleinere Zahl zu null ist, die z. B. mit double darstellbar ist. allerdings habe ich im Moment gar keine Idee, wie ich an die drankommen könnte.
Vielleicht könnt ihr mir ja helfen!
Danke!
Ciao
shoat
-
hallo
ich weiß nicht, ob du das meinst..
die sache mit mantisse und exponent..(steht hier rechentechnisch beschrieben)
http://homepages.fh-regensburg.de/~zar39030/pg/node4.html1 vorzeichenbit, 11 bits exponent, 52 bits mantisse
8 bytes (oder 64 bits)
-
shoat schrieb:
mir ist eben so eingefallen - eigentlich verdrängt man soetwas ja immer, dass wir mit der Begrenzung der Zahlen (z. B. double 8 Byte ~ Zahlen) ja unter Java keine unendlich große Zahlenmenge (wie z. B. die reelen Zahlen in der Mathematik) zur Verfügung steht.
Du hast unter Java allerdings die Klasse BigDecimal. Damit kriegst du zwar auch nicht alle reellen Zahlen hin, aber du kommst schon ein ganzes Stückchen weiter als mit double.
-
shoat schrieb:
deswegen habe ich mir mal die Frage gestellt, was die nächstkleinere Zahl zu null ist, die z. B. mit double darstellbar ist. allerdings habe ich im Moment gar keine Idee, wie ich an die drankommen könnte.
Double.MIN_VALUE beantwortet deine Frage.
static double MIN_VALUE
A constant holding the smallest positive nonzero value of type double, 2-1074.
-
hallo Elise!
elise schrieb:
hallo
ich weiß nicht, ob du das meinst..
die sache mit mantisse und exponent..(steht hier rechentechnisch beschrieben)
http://homepages.fh-regensburg.de/~zar39030/pg/node4.html1 vorzeichenbit, 11 bits exponent, 52 bits mantisse
8 bytes (oder 64 bits)ich denke, ich bin jetzt schon einen Schritt weiter. wenn ich mir diesen "Zahlenkreis" so anschaue, dann gehen die negativen Zahlen (im Bezug auf double) von FFFF FFFF FFFF FFFF hex bis 9000 0000 0000 0000 hex. d. h. ich muss jetzt nur noch etwas in der Art:
double minValue = (double) <FFFF FFFF FFFF FFFF hex> ; double minValue = (double) <9000 0000 0000 0000 hex> ;
machen und schon habe ich den größten und kleinsten negativen Wert (in double).
So, ich muss nur mal suchen, wie man hex-Werte in Java darstellt und schon kann ich es ausprobieren. Danke für Deine Hilfe.
Optimizer schrieb:
shoat schrieb:
deswegen habe ich mir mal die Frage gestellt, was die nächstkleinere Zahl zu null ist, die z. B. mit double darstellbar ist. allerdings habe ich im Moment gar keine Idee, wie ich an die drankommen könnte.
Double.MIN_VALUE beantwortet deine Frage.
static double MIN_VALUE
A constant holding the smallest positive nonzero value of type double, 2-1074.oh ja, die Konstanten. daran habe ich wieder nicht gedacht. tztztz. die kann ich auch mal ausprobieren. ich werde mir mal den Hexwert davon ausgeben lassen. (wenn ich nur wüßte, wie das geht, ... *such*)
Danke auch Dir für die Hilfe!
Gregor schrieb:
shoat schrieb:
mir ist eben so eingefallen - eigentlich verdrängt man soetwas ja immer, dass wir mit der Begrenzung der Zahlen (z. B. double 8 Byte ~ Zahlen) ja unter Java keine unendlich große Zahlenmenge (wie z. B. die reelen Zahlen in der Mathematik) zur Verfügung steht.
Du hast unter Java allerdings die Klasse BigDecimal. Damit kriegst du zwar auch nicht alle reellen Zahlen hin, aber du kommst schon ein ganzes Stückchen weiter als mit double.
Danke Gregor. Du hast recht, mit BigDecimal kommt man natürlich weiter als mit double. Aber meine Frage ging nicht in diese Richtug. Mir ist gestern halt nur zum ersten Mal richtig bewußt geworden, dass die double keine analoge (unendliche), sondern eben eine digitale Zahlenmenge ist. deswegen meine Frage. Trotzdem, danke für den Tip.
Ciao
shoat