C# Can';t将字符串转换为int:';System.FormatException';
我无法将字符串转换为整数,我的程序在这一行失败C# Can';t将字符串转换为int:';System.FormatException';,c#,C#,我无法将字符串转换为整数,我的程序在这一行失败 int newS = int.Parse(s); 留言: mscorlib.dll中发生类型为“System.FormatException”的未处理异常 我期待从我的程序中得到的数字相当大。以下是整个计划: int math = (int)Math.Pow(2,1000); string mathString = math.ToString(); List<string> list = new List<string>
int newS = int.Parse(s);
留言:
mscorlib.dll中发生类型为“System.FormatException”的未处理异常
我期待从我的程序中得到的数字相当大。以下是整个计划:
int math = (int)Math.Pow(2,1000);
string mathString = math.ToString();
List<string> list = new List<string>();
char[] ch = mathString.ToCharArray();
int result = 0;
foreach (char c in mathString)
{
string newC = c.ToString();
list.Add(newC);
//Console.WriteLine(newC);
}
foreach (string s in list)
{
int newS = int.Parse(s);
result += newS;
}
Console.Write(result);
Console.ReadLine();
intmath=(int)math.Pow(21000);
字符串mathString=math.ToString();
列表=新列表();
char[]ch=mathString.ToCharArray();
int结果=0;
foreach(mathString中的字符c)
{
字符串newC=c.ToString();
列表。添加(newC);
//控制台写入线(newC);
}
foreach(列表中的字符串s)
{
int newS=int.Parse;
结果+=新闻;
}
控制台。写入(结果);
Console.ReadLine();
您回答了自己的问题。整数最多只能存储2147483648个数字,无符号整数最多只能存储4294967296个数字。试着用乌龙代替。我不确定这个,但也许签了一份长合同就行了
编辑:实际上,在msdn页面中,它说:
如果整型文字表示的值超过ulong的范围,则会发生编译错误
因此,您可能需要一个double。Math.Pow(2100)返回-2147483648
因此,列表中有11项,第一项是“-”
您无法将减号转换为整数。在所有语言的所有类型中,您可以保存的数字都有限制。 c#的整数是-2147483648到2147483647。 数学,战俘 返回一个double,当您要将其强制转换为int时,您的变量将获得值0 数学Pow(21000)返回值:1.07150860718627E+301 如果您使用双重格式,您将尝试强制转换。E和+,它们不是int,那么你不能用int来保存它 返回此处回答的FormatException: 也许你可以试试这个: 国际新闻 如果(!int.TryParse(Textbox1.Text,out newS))newS=0 结果+=新闻
但不会使用2^1000的解决方案的301位。您查看过什么是mathString吗?如果这是2^1000,比32大,但int可以处理,我很确定,所以我不确定类型转换会做什么,但可能不是您想要的。您是否应该使用
biginger
?错误的良好解释。。。修正“returns-2147483648”以与@GrantWinney评论保持一致会让它变得更好。这不是有点与答案无关吗?我的意思是,如果他给数学分配-1,他也会得到同样的例外。