Wie würde ich in Java mit extrem großen Zahlen rechnen?
Ich habe es versucht, long
aber das ist maximal bei 9223372036854775807, und wenn eine Ganzzahl verwendet wird, werden nicht genügend Ziffern gespeichert und daher ist sie nicht genau genug für das, was ich brauche.
Gibt es sowieso um das herum?
java
numbers
integer
biginteger
Petey B.
quelle
quelle
9223372036854775807
istLong.MAX_VALUE
sowieso der genaue Wert von .Antworten:
Sie können die
BigInteger
Klasse für Ganzzahlen undBigDecimal
für Zahlen mit Dezimalstellen verwenden. Beide Klassen sind imjava.math
Paket definiert .Beispiel:
quelle
Verwenden Sie die
BigInteger
Klasse, die Teil der Java-Bibliothek ist.http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigInteger.html
quelle
Hier ist ein Beispiel, das sehr schnell große Zahlen erhält.
quelle
Kasse
BigDecimal
undBigInteger
.quelle
quelle
Je nachdem, was Sie tun, möchten Sie vielleicht einen Blick auf GMP (gmplib.org) werfen, eine leistungsstarke Bibliothek mit mehreren Genauigkeiten. Um es in Java zu verwenden, benötigen Sie JNI-Wrapper um die Binärbibliothek.
In einem Teil des Alioth Shootout-Codes finden Sie ein Beispiel für die Verwendung anstelle von BigInteger, um Pi auf eine beliebige Anzahl von Stellen zu berechnen.
https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/pidigits-java-2.html
quelle