2015-04-06 2 views
-2

У меня есть эта строка:Невозможно бросить строку int32

"-1238903096.0" 

Когда я пытаюсь бросить его в Int32 с помощью Convert.ToInt32() или int.Parse/int.TryParse я получаю FormatException: «Дополнительная информация: строка ввода не была в правильном формате».

Но, как правило, он должен работать, потому что это значение не превышает диапазон Int32.MinValue? Любые идеи: /?

+2

Да, ваше значение имеет десятичную точку, поэтому вам нужно проанализировать его как 'double' или' decimal'. – MarcinJuraszek

+0

Спасибо, это было решение! :) –

+0

слегка не по теме (и педантичный), но использование 'Convert.ToInt32' не считается кастингом, это будет считаться синтаксическим разбором. – Matthew

ответ

3

Ваше значение имеет десятичную точку, наиболее подходящую для ее анализа как десятичной или двойной.

Вы также можете удалить десятичную точку и затем проанализировать ее как целое.

+0

Или нарисуйте двойную партию после разбора ... –

0

Xela - это правая, десятичная точка вас путает. Попробуйте преобразовать в double, прежде чем преобразовать его в целое.

int answer = Convert.ToInt32(Convert.ToDouble(s)); 
Смежные вопросы