C# 为什么Int32.TryParse为数字返回false?
我有以下代码:C# 为什么Int32.TryParse为数字返回false?,c#,parsing,int,tryparse,C#,Parsing,Int,Tryparse,我有以下代码: string sPhone = "420777777777"; int rPhone; bool valid = Int32.TryParse(sPhone, out rPhone); //false if (!valid) return ""; return String.Format("{0:+### ### ### ###}", rPhone); 我想格式化电话号码,以便将字符串转换为int,但valid的值始终为false。如何将此字符串转换为int?我还在尝试int
string sPhone = "420777777777";
int rPhone;
bool valid = Int32.TryParse(sPhone, out rPhone); //false
if (!valid)
return "";
return String.Format("{0:+### ### ### ###}", rPhone);
我想格式化电话号码,以便将字符串转换为int,但valid
的值始终为false。如何将此字符串转换为int?我还在尝试int.TryParse
或Convert.ToInt32
。什么都不起作用。因为是2147483647所以,字符串“420777”的转换永远不会是Int32的有效值
使用
Int32是32位数字,对于UInt32,其最大值为2147483647或4294967295。如果您有64位体系结构,可以尝试使用long.TryParse。如果无法将它们相加,则它们不是数字。莎拉的电话号码加上布莱尔的电话号码是多少?你为什么要先把电话号码转换成整数?您打算用它进行计算吗?我需要将它格式化(最后一行),因为我需要将它转换为int。在32位体系结构上,long的最大值与Int32相同。这意味着它无助于解决这个问题。Int64(或long)。MaxValue是常量,定义为9223372036854775807,无论您使用什么体系结构。
string sPhone = "420777777777";
long rPhone;
bool valid = Int64.TryParse(sPhone, out rPhone);
return (!valid ? "" : string.Format("{0:+### ### ### ###}", rPhone));