我有这段代码:
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
。没有任何效果。
答案 0 :(得分:9)
因为Int32.MaxValue 2147483647 所以,您的字符串“420777777777”的转换永远不会是Int32的有效值;
使用
string sPhone = "420777777777";
long rPhone;
bool valid = Int64.TryParse(sPhone, out rPhone);
return (!valid ? "" : string.Format("{0:+### ### ### ###}", rPhone));
答案 1 :(得分:0)
Int32是32位数字,对于UInt32,它的最大值是2147483647或4294967295。如果你有64位架构,你可以尝试使用long.TryParse。