如果值为零,则Decimal.ToString无效

时间:2014-03-13 14:23:48

标签: c# linq sum

我有以下代码 -

Label1..Text = dt.AsEnumerable().Sum(x => x.Field<decimal?>("col1") ?? 0).ToString("#,#.####", CultureInfo.InvariantCulture);

在这里,我正在显示&#39; col1&#39;在标签上。
我正在检查x.Field<decimal?>("col1")是否为空值

问题是,如果列的值类似于1234,则显示正确,但如果x.Field<decimal?>("col1")为null,则它将值取为ZERO,并且标签上不显示任何内容。

似乎toString如果它为零则忽略该值并且不返回任何值。

请帮忙

1 个答案:

答案 0 :(得分:9)

使用格式"#,0.####"这将显示0代表0个值,1,234代表1234

Label1.Text = dt.AsEnumerable()
                 .Sum(x => x.Field<decimal?>("col1") ?? 0)
                 .ToString("#,0.####", CultureInfo.InvariantCulture);

您应该看到:Custom Numeric Format Strings.

  

“0” - 将零替换为相应的数字(如果有)   当下;否则,结果字符串中会出现零。