Відповіді:
Ви можете використовувати BigInteger
клас для цілих чисел і BigDecimal
для чисел з десятковими цифрами. Обидва класи визначені в java.math
пакеті.
Приклад:
BigInteger reallyBig = new BigInteger("1234567890123456890");
BigInteger notSoBig = new BigInteger("2743561234");
reallyBig = reallyBig.add(notSoBig);
Використовуйте BigInteger
клас, який є частиною бібліотеки Java.
http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigInteger.html
Ось приклад, який отримує великі цифри дуже швидко.
import java.math.BigInteger;
/*
250000th fib # is: 36356117010939561826426 .... 10243516470957309231046875
Time to compute: 3.5 seconds.
1000000th fib # is: 1953282128707757731632 .... 93411568996526838242546875
Time to compute: 58.1 seconds.
*/
public class Main {
public static void main(String... args) {
int place = args.length > 0 ? Integer.parseInt(args[0]) : 250 * 1000;
long start = System.nanoTime();
BigInteger fibNumber = fib(place);
long time = System.nanoTime() - start;
System.out.println(place + "th fib # is: " + fibNumber);
System.out.printf("Time to compute: %5.1f seconds.%n", time / 1.0e9);
}
private static BigInteger fib(int place) {
BigInteger a = new BigInteger("0");
BigInteger b = new BigInteger("1");
while (place-- > 1) {
BigInteger t = b;
b = a.add(b);
a = t;
}
return b;
}
}
Оформлення замовлення BigDecimal
та BigInteger
.
import java.math.BigInteger;
import java.util.*;
class A
{
public static void main(String args[])
{
Scanner in=new Scanner(System.in);
System.out.print("Enter The First Number= ");
String a=in.next();
System.out.print("Enter The Second Number= ");
String b=in.next();
BigInteger obj=new BigInteger(a);
BigInteger obj1=new BigInteger(b);
System.out.println("Sum="+obj.add(obj1));
}
}
Залежно від того, що ви робите, ви можете поглянути на GMP (gmplib.org), яка є високопродуктивною багатоточною бібліотекою. Щоб використовувати його на Java, вам потрібні обгортки JNI навколо бінарної бібліотеки.
Див. Деякий код Alioth Shootout для прикладу використання його замість BigInteger для обчислення Pi до довільної кількості цифр.
https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/pidigits-java-2.html
9223372036854775807
вLong.MAX_VALUE
будь-якому випадку є точним значенням .