[英]Convert string array to int array 'System.FormatException'
[英]Can't convert string to int: 'System.FormatException'
我在將字符串轉換為整數時遇到問題,我的程序在此行失敗
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();
你是在自問自答。 一個int最多只能存儲2147483648,而一個無符號的int最多可以存儲4294967296。請嘗試使用ulong。 我對此不太確定,但也許簽了字可能會奏效。
編輯:實際上,在msdn頁面中它說:
如果由整數文字表示的值超出ulong的范圍,則會發生編譯錯誤。
因此,可能您需要加倍。
Math.Pow(2,1000)返回-2147483648 。
因此,您最終將在列表中找到11個項目,第一個為“-”。
您不能將減號轉換為int。
在所有語言的所有類型中,可以保存的數字都有限制。 c#的int是-2,147,483,648至2,147,483,647。 https://msdn.microsoft.com/zh-CN/library/5kzh1b5w.aspx
Math.Pow返回一個double值,當您要將其強制轉換為int時,變量的值為0
Math.Pow(2,1000)返回:1.07150860718627E + 301。
如果您使用double格式,則將嘗試投射。 和E和+,它們不是int,則不能使用int來保存它。
返回在此處回答的FormatException: int.Parse,輸入字符串的格式不正確
也許您可以嘗試以下方法:
國際新聞;
如果(!int.TryParse(Textbox1.Text,out newS))newS = 0;
結果+ = newS;
但不會使用2 ^ 1000解決方案的301位數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.