2016-08-01 2 views
-1

У меня есть серьезные проблемы с C#, это мой код:C# Строка ввода не была в правильном формате. int.Parse

string priceLowstring = Inventory.exportPrice(price.lowest_price); 
string pricestring = Inventory.exportPrice(price.median_price); 

Log.Success(priceLowstring); 
Log.Success(pricestring); 

int priceavg = int.Parse(pricestring); 
int priceLow = int.Parse(priceLowstring); 

И я получаю эту ошибку:

[Gicminos 2016-08-01 11:52:56] SUCCESS: 4 
[Gicminos 2016-08-01 11:52:56] SUCCESS: 2 
[Gicminos 2016-08-01 11:52:56] ERROR: Unhandled exception occurred in bot: System.FormatException: Input string was not in a correct format. 
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) 
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) 
.... 

Как вы можете видеть на журнальном сообщении, строки являются правильными и у них нет пробелов.

Я проверил свой /HKEY_CURRENT_USER/Control Panel/International/sPositiveSign, и он пуст.

Что я должен сделать для решения этой проблемы?

+3

"правильность строки" =>, вероятно, не так, как не удается int.Parse. Прикрепите отладчик, чтобы увидеть значение строки _actual_. – ken2k

+0

Вы можете увидеть на "[Gicminos 2016-08-01 11:52:56] УСПЕХ: 4" строковое значение - "4". Я в этом уверен. – Gicminos

+4

Я видел эту строку, но это не значит, что значение на самом деле «4». Что делать, если после «4» нет отображаемого символа? Никакой черной магии здесь, никакой ошибки в рамках, int.Parse («4») работает. – ken2k

ответ

1

Я предполагаю, что у вас есть скрытые персонажи. Вы можете удалить все символы, не являющиеся цифры:

pricestring = new string(pricestring.Where(c => char.IsDigit(c)).ToArray()); 

Это провал для вас в том случае, если у вас есть несколько фракций, - но в любом случае, если вы хотите, чтобы разобрать его в целом.

Также - попытаться использовать TryParse вместо просто Parse - безопасный способ

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