Відповіді:
Ви можете використовувати 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будь-якому випадку є точним значенням .