Входная строка не была в правильном формате с SUM - PullRequest
0 голосов
/ 24 октября 2018

У меня проблема с вычислением от двойной до строки, когда у меня есть сумма в списке.Когда языковые настройки изменились, я попытался использовать InvariantCulture, но мне не удалось заставить его работать.У кого-нибудь есть какие-либо советы о том, как это обработать?

Код выглядит так:

List<string> Moms_F = new List<string>();
double tot_Moms_F = Moms_F.Sum(x => Convert.ToDouble(x));
AssignControls(GetControls(wordDoc, "tot_Moms_F"), tot_Moms_F.ToString());

То, что я пытался сделать, было

            CultureInfo ci;

            ci = (CultureInfo)CultureInfo.InvariantCulture.Clone();
            ci.NumberFormat.NumberDecimalSeparator = ".";
            ci.NumberFormat.NumberGroupSeparator = ".";

, а затем добавлено

double tot_Moms_F = Moms_F.Sum(x => Convert.ToDouble(ci));

но затем я получаю сообщение об ошибке: Невозможно привести объект типа 'System.Globalization.CultureInfo' к типу 'System.IConvertible'.

У кого-нибудь есть хорошая идея?

1 Ответ

0 голосов
/ 24 октября 2018

Решите это следующим образом, если кто-то столкнется с этой проблемой и столкнется с той же проблемой:

CultureInfo ci = (CultureInfo)CultureInfo.CurrentCulture.Clone();
                ci.NumberFormat.CurrencyDecimalSeparator = ".";
float tot_Moms_F = Moms_F.Sum(x => float.Parse(x,NumberStyles.Any, ci));

Стоит отметить, что печатное значение вместо.что-то слишком похожее

...