2016-11-07 3 views
0

При преобразовании строки десятичного числа "0,0,0,0,0,0,0,8555,127875, -180000,152000,55000,3.84,648000" Я получаю сообщение об ошибке когда один из пунктов отрицательныйПреобразование строки десятичной в список

Строка ввода не в правильном формате.

System.Globalization.NumberStyles style = System.Globalization.NumberStyles.AllowDecimalPoint | System.Globalization.NumberStyles.AllowThousands | System.Globalization.NumberStyles.AllowExponent ; 
String t = "0,0,0,0,0,0,8555,127875,-180000,152000,55000,3.84,648000"; 
List<decimal> prices = t.Split(',').Select(n => decimal.Parse(n, style)).ToList(); 
+0

Так что же вам нужно? Вы хотите, чтобы -в один конвертировать в + ve, Ommit это или что-нибудь еще? –

+0

Я хочу -180000 одному из элементов в списке – eyalb

+0

Знаете ли вы, почему вы указываете 'NumberStyles'? – haim770

ответ

4

Добавить System.Globalization.NumberStyles.AllowLeadingSign флаг.

System.Globalization.NumberStyles style = System.Globalization.NumberStyles.AllowDecimalPoint | System.Globalization.NumberStyles.AllowThousands | System.Globalization.NumberStyles.AllowExponent | System.Globalization.NumberStyles.AllowLeadingSign; 
String t = "0,0,0,0,0,0,8555,127875,-180000,152000,55000,3.84,648000"; 
List<decimal> prices = t.Split(',').Select(n => decimal.Parse(n, style)).ToList(); 
0

Попробуйте

String t = "0,0,0,0,0,0,8555,127875,-180000,152000,55000,3.84,648000"; 

String[] list = t.Split(','); 
List<Decimal> decimals = new List<decimal>(); 
foreach (string s in list) 
{ 
    decimals.Add(Convert.ToDecimal(s)); 
} 

или

List<Decimal> decimals = t.Split(',').Select(x => Convert.ToDecimal(x)).ToList(); 
Смежные вопросы