显示带有两位小数的值的总和

时间:2014-05-05 08:32:17

标签: c# asp.net-mvc sum

我有一个项目列表,其中一个属性是十进制类型。

当我尝试对项目属性求和并用两位小数显示它时,当总和是偶数时,它将无法工作。

例如:

如果总和是30000,我希望它显示30000.00,现在只显示30000。

但如果总和为30000.55,则显示30000.55。

我的观看代码:

for (var j = 0; j < Model.Calculation.Count; j++)
{
     @Model.Calculation[j].Sum(item => item.InterestAmount).ToString("#.##")
}

当总和为30000时,如何让它显示30000.00?

4 个答案:

答案 0 :(得分:5)

您使用"#.##"作为格式字符串,#表示&#34;如果数字很重要,则显示数字&#34;。如果始终想要显示两位数字,则应使用"0.00"作为模式。有关详细信息,请参阅documentation for custom numeric format strings

示例代码:

using System;

class Test
{
    static void Main()
    {
        Show(0m);        // 0.00
        Show(0.123m);    // 0.12
        Show(123.456m);  // 123.46
        Show(-123.456m); // -123.46
    }

    static void Show(decimal value)
    {
        Console.WriteLine(value.ToString("0.00"));
    }
}

请注意,这会使用当前文化进行格式化,因此最终可能会出现&#34; 123,46&#34;例如。如果总是想要小数点分隔符的点,请指定CultureInfo.InvariantCulture作为格式提供者。

答案 1 :(得分:1)

来自The "#" Custom Specifier

  

&#34;#&#34;自定义格式说明符用作数字占位符符号。   如果正在格式化的值在其中的位置有一个数字   &#34;#&#34;符号出现在格式字符串中,该数字被复制到   结果字符串。否则,没有任何东西存储在该位置   结果字符串。

     

请注意,此说明符永远不会显示不是a的零   有效数字,即使零是字符串中的唯一数字。它   只有当它是数字中的有效数字时才会显示零   正在展示。

您可能需要改为使用0.00

(30000).ToString("0.00") // Prints 30000.00
(30000.55).ToString("0.00") // Prints 30000.55

当然,这个.ToString()方法默认使用当前线程文化。这就是为什么你的小数分隔符取决于你当前的文化。如果您始终希望将.作为小数点分隔符,则需要提供.作为NumberDecimalSeparator property InvariantCulture的文化。

答案 2 :(得分:1)

替换你的&#34;#&#34; 0

for (var j = 0; j < Model.Calculation.Count; j++)
{
     @Model.Calculation[j].Sum(item => item.InterestAmount).ToString("0.00")
}

答案 3 :(得分:0)

实现这一目标的更简单,更有效的方法。

for (var j = 0; j < Model.Calculation.Count; j++)
{
     @Model.Calculation[j].Sum(item => item.InterestAmount).ToString("F")
}

//  F:   0.00 
//  F0:  0 
//  F1:  0.0 
//  F2:  0.00 
//  F3:  0.000 

有关数字的更多此类格式,请访问here