Vinodh Muthusamy Ответов: 3

Преобразование строки в целое число в C#


Я пытаюсь преобразовать строку в целое число. я не мог обратиться. Он выдает ошибку как
Input string was not in a correct format.



string snewidstring = "462414720-60TX6E0088";
     int snewid = Convert.ToInt32(snewidstring);




Как преобразовать эту строку в целое число.

Что я уже пробовал:

<pre>string snewidstring = "462414720-60TX6E0088";
     int snewid = Convert.ToInt32(snewidstring);

Bryian Tan

Просто любопытно, каков же ожидаемый результат?

Dave Kreskowiak

А что, по-твоему, должно было случиться? В этой строке есть дефис и буквы алфавита. Это никак не может быть преобразовано в целочисленное значение.

Вам нужно будет точно определить, что вы ожидаете получить из этой строки и что вы ожидаете преобразовать в целое число.

#realJSOP

Он был в приключении открытия.

Patrice T

Какое целое число вы ожидали для этой строки ?

#realJSOP

"Апельсины".

Patrice T

тебе нужно использовать больше магии

Gerry Schmitz

Это то, что ваш босс сказал вам сделать? "Преобразуйте его в int" ...

#realJSOP

Он получает инструкции от Золотого единорога, покрытого блестками и стреляющего радугой из своей задницы.

3 Ответов

Рейтинг:
27

Kenneth Haugland

Как насчет этого:
Типа int32.Метод TryParse (String, Int32) (System)[^]


#realJSOP

Это и есть ответ. Очевидно, что строка, которую он пытается преобразовать, не является допустимым числом. Один из целых чисел TryParse() методы - это правильный путь. Тот, кто поставил вам "1", - дебил, и ему следует пересмотреть свое мнение о том, что, возможно, его лучшее возможное призвание-подметать стоячую воду с тротуаров или наблюдать за машиной, которая ставит гребни на края шашек.

Рейтинг:
1

abdul shakib

string snewidstring = "462414720-60TX6E0088";
                   int storein;
                   int.TryParse(snewidstring, out storein);


F-ES Sitecore

Вы можете повысить эффективность этого кода без изменения того, что он делает, сделав это небольшое изменение;

строка snewidstring = "462414720-60TX6E0088";
int storein = 0;

Рейтинг:
1

Dylvh

Ну, кажется, ты хотя бы пытался... Вам придется удалить - и TX и E, которые дадут вам большое число, так что вам придется перейти на Int64.

Вот как будет преобразована ваша строка.

string snewidstring = "4624147206060088";
     Int64 snewid = Convert.ToInt64(snewidstring);


#realJSOP

Этот код выдаст точно такое же исключение.

Dylvh

Вы пробовали код, чтобы увидеть, если он выдает точно такую же ошибку? ;-) Он действительно преобразуется без создания исключения. Во всяком случае, я согласен, что tryparse-это правильный ответ.

#realJSOP

Он выдаст то же самое исключение с примером значения OP. Вы преобразуете фактическую целочисленную строку в int64, поэтому она будет преобразована без исключения. Следовательно, ваш ответ неверен, и мое наблюдение остается в силе.

Dylvh

Я понимаю. Очень ценю.