2015-09-08 47 views
0

任何人都可以請告訴我爲什麼這不會奏效?
我得到一個格式異常。 int.Parse(str) - 不知何故此嘗試將字符串轉換爲日期時間,但我希望它得到一個intint.Parse(string)產生DateTime格式異常錯誤

bool truncL(int val) 
{ 
    while (val >= 1) 
    { 
     string str = val.ToString(); 
     str = str.Substring(1);     
     val = int.Parse(str);     
     if (!primeList.Exists(x => x == val)) return false; 
    } 
    return true; 
} 
+3

正確地調試代碼時'str'的​​值是多少?你的「CurrentCulture」是什麼?那你的意思是_DateTime FormatException_到底是什麼意思?代碼中沒有DateTime。 –

+3

* int.Parse(str) - 以某種方式嘗試將字符串轉換爲日期時間*它不嘗試創建DateTime對象。它只是告訴你'string'是無效的。 –

+0

請同時發佈完整的例外... – ChrFin

回答

4

此:

str = str.Substring(1); 

試圖獲取子索引1開始。如果你的整數值是0-9,這將產生一個空字符串,這可能是你的代碼失敗的原因。

如果你想獲取第一個數字,你想:

str = str.Substring(0, 1); 
+2

打我吧... –

+0

第一個數字是'str = str.Substring(0,1);' – juharr

+0

@juharr謝謝。糾正。 –

0

我親愛的這位朋友是你的愚蠢的錯誤

str = str.Substring(1); 

變化的聲明

str = str.Substring(0, 1); 

和一切都會正常工作

希望它有幫助

+0

非常感謝你,現在它工作!我應該知道這個! ;) –