通过在c#中使用try parse检查字符串是数字

Ric*_*ard 1 c#

我有以下价值

string value = "10053409434400003333336533210923";
Run Code Online (Sandbox Code Playgroud)

当我尝试在下面解析它时isNumeric显示总是错误的结果因为很长(我认为)

long n;
bool isNumeric = long.TryParse(value , out n);
if (!isNumeric) // Always false
{

}
Run Code Online (Sandbox Code Playgroud)

我在代码中遗漏的地方如何检查字符串(甚至50个字符)的值是否为数字?

谢谢

Ale*_*exD 13

如果要检查所有字符是否都是数字,而不确定该数字是否可以用整数类型表示,请尝试Linq:

bool digitsOnly = s.All(c => char.IsDigit(c));
Run Code Online (Sandbox Code Playgroud)


Mit*_*eat 6

如果您希望能够使用已解析的数字,则需要一个足以表示它的类型.一个.NET long可以支持-9,223,372,036,854,775,808到9,223,372,036,854,775,807所以我建议使用BigInteger(添加引用System.Numerics)

BigInteger number1;
bool succeeded1 = BigInteger.TryParse("10053409434400003333336533210923", out number1);
Run Code Online (Sandbox Code Playgroud)

BigInteger.TryParse

  • 您需要引用System.Numerics才能使用它. (2认同)