2015-09-08 2 views
0

Может кто-нибудь скажет мне, почему это не работает?
Я получаю исключение в формате. int.Parse(str) - как-то это пытается преобразовать строку в DateTime, но я хочу, чтобы получить ИНТint.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 * Она не пытается создать объект 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

большое спасибо, теперь он работает! я должен был это знать! ;) –

Смежные вопросы