输入字符串的格式不正确,使用SUM

时间:2018-10-24 12:35:02

标签: string sum double cultureinfo

当我有一个列表的总和时,从双精度到字符串计算时出现问题。 更改语言设置后,我尝试使用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 :(得分:0)

如果有人偶然发现此问题并遇到相同的问题,便可以这样解决:

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

值得注意的一件事是,打印的值是,而不是。太懒了