2011-12-26 2 views
2

Привет Я пытаюсь найти решение 300^121 или 726^85 или как это длинные числовые операции, но в netbeans на экране вывода я не вижу больше 9223372036854775807, как я могу выполнять эти операции ?Java long numeric

ответ

6

Посмотрите на класс java.lang.BigInteger. Это позволяет вам иметь дело с целыми числами, большими, чем Long.MAX_VALUE. Вы можете сделать что-то вроде:

BigInteger huge = BigInteger.valueOf(300).pow(121); 
System.out.println("300^121 = " + huge.toString()); 
3

Это не имеет никакого отношения к netbeans действительно, но вместо этого его максимальное значение, которое вы можете представлять с длинным. Длинный представлен как подписанное 64-битное число, что означает, что оно может достигать 2^63 - 1, что равно 9223372036854775807. Для этого есть константа в java.lang.Long, называемая MAX_VALUE.

Чтобы представить большие числа, вам нужно использовать BigDecimal или BigInteger. Вы можете попробовать что-то вроде этого:

System.out.println(new BigDecimal(300).pow(121)); 

И это должно дать вам это.

539103089974329363123953948852881511919442688261355331920300000000000000000000000 
000000000000000000000000000000000000000000000000000000000000000000000000000000000 
000000000000000000000000000000000000000000000000000000000000000000000000000000000 
000000000000000000000000000000000000000000000000000000000