Как преобразовать значение длинной строки в целое число
Что я должен использовать вместо ToInt32
, чтобы преобразовать значение длинной строки "10000000001" в целое число, поэтому этот способ ограничен десятизначным числом:
string str1 = "1000000000";
string str2 = "1000000000";
int a = Convert.ToInt32(str1);
int b = Convert.ToInt32(str2);
int c = a + b;
Console.WriteLine(c);
результат:
2000000000
но как конвертировать, если значение строкового числа больше десятизначного числа:
string str1 = "10000000001";
string str2 = "10000000001";
чтобы получить результат:
20000000002
1 ответ
Если значение может быть произвольным числом, так как оно может быть таким же большим или маленьким, как любое другое число, о котором вы можете подумать, тогда используйте структуру BigInteger, которая находится в пространстве имен System.Numerics.
пример:
string str1 = "1000023432432432432234234324234324432432432432400000";
string str2 = "1003240032432432423432432948320849329493294832800000";
BigInteger BigInt = (BigInteger.Parse(str1) + BigInteger.Parse(str2)); // might want to validate before doing this.
Console.WriteLine(BigInt);
По сути, BigInteger не имеет верхней или нижней границы. единственным ограничением для этого является ваша оперативная память.
Однако, если ваш номер будет немного больше 10 цифр, то вы можете использовать int64. длинный тип данных.