Bagaimana saya melakukan penghitungan dengan angka yang sangat besar di Jawa?
Saya telah mencoba long
tetapi itu maksimal di 9223372036854775807, dan ketika menggunakan integer itu tidak menyimpan cukup angka dan karena itu tidak cukup akurat untuk apa yang saya butuhkan.
Apakah ada juga di sekitar ini?
java
numbers
integer
biginteger
Petey B
sumber
sumber
9223372036854775807
adalah nilai persisnyaLong.MAX_VALUE
.Jawaban:
Anda dapat menggunakan
BigInteger
kelas untuk bilangan bulat danBigDecimal
angka dengan digit desimal. Kedua kelas tersebut didefinisikan dalamjava.math
paket.Contoh:
sumber
Gunakan
BigInteger
kelas yang merupakan bagian dari perpustakaan Java.http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigInteger.html
sumber
Berikut adalah contoh yang mendapatkan angka besar dengan sangat cepat.
sumber
Checkout
BigDecimal
danBigInteger
.sumber
sumber
Bergantung pada apa yang Anda lakukan, Anda mungkin ingin melihat GMP (gmplib.org) yang merupakan pustaka multi-presisi berkinerja tinggi. Untuk menggunakannya di Java, Anda memerlukan pembungkus JNI di sekitar pustaka biner.
Lihat beberapa kode Alioth Shootout untuk contoh penggunaannya alih-alih BigInteger untuk menghitung Pi ke sejumlah digit acak.
https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/pidigits-java-2.html
sumber