Есть ли какой-либо тип данных, доступный в Java или С++, который может содержать целые значения в 20 цифр или более? Длительный длинный тип данных может содержать только до 18 цифр.
Тип данных в С++ или java для хранения 20-значного целого числа
Ответ 1
Спецификация Java:
Вы ищете BigInteger
Неизменяемые целые числа произвольной точности. Все операции ведут себя так, как если бы BigIntegers были представлены в двухзначной нотации (например, Java-примитивных целочисленных типах)
Для ex:
BigInteger bint = new BigInteger("1234567856656569");
BigInteger bint2 = new BigInteger("1234556567856656569");
System.out.println(bint2.intValue()-bint.intValue()); //397189120
Ответ 2
Взгляните на java BigInteger.
Ответ 3
В java
вы можете использовать:
-
BigInteger
: для чисел без десятичных значений -
BigDecimal
: для чисел с десятичными значениями
Ответ 4
Отъезд Исследование большого целого в С++. pdf от Owen Astrachan. Я нашел этот файл чрезвычайно полезным с подробным представлением и реализацией кода. Он не использует стороннюю библиотеку. Я использовал это для обработки огромных чисел (если у вас достаточно памяти для хранения vector<char>
) без проблем.
Я ответил на аналогичный вопрос здесь, где я дал более подробное введение.
Ответ 5
Для С++ вы можете проверить класс Matt McCutchen Big Integer, для Java просто используйте BigInteger
Ответ 6
BigInteger
класс в Java может содержать такие числа.
В качестве альтернативы вы можете реализовать свой собственный класс на основе двух длинных длинных номеров.
Ответ 7
Ответ 8
Использовать тип данных BigInt с его неявными операциями
Вот пример добавления
BigInteger big1 = new BigInteger("1234567856656567242177779");
BigInteger big2 = new BigInteger("12345565678566567131275737372777569");
BigInteger bigSum = big1.add(big2);
System.out.println(bigSum );