Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 显示两个小数的值之和_C#_Asp.net Mvc_Sum - Fatal编程技术网

C# 显示两个小数的值之和

C# 显示两个小数的值之和,c#,asp.net-mvc,sum,C#,Asp.net Mvc,Sum,我有一个项目列表,其中一个属性是decimal类型 当我尝试对items属性求和并用两个小数显示它时,当总和为偶数时,它将不起作用 例如: 如果总和是30000,我希望它显示30000.00,现在它只显示30000 但如果总和为30000.55,则显示30000.55 我的视图代码: for (var j = 0; j < Model.Calculation.Count; j++) { @Model.Calculation[j].Sum(item => item.Inter

我有一个项目列表,其中一个属性是decimal类型

当我尝试对items属性求和并用两个小数显示它时,当总和为偶数时,它将不起作用

例如:

如果总和是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("#.##")
}
for(var j=0;jitem.InterestAmount).ToString(“#.##”)
}
当总和为30000时,我如何使其显示30000.00?

您正在使用
“#.##”
作为格式字符串,而
#
的意思是“如果有意义,则显示一个数字”。如果您总是想显示两位数字,则应使用
“0.00”
作为模式。有关更多详细信息,请参阅

示例代码:

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"));
    }
}
请注意,这将使用当前区域性进行格式设置,因此您可以以“123,46”为例结束。如果始终需要小数点分隔符,请指定
CultureInfo.InvariantCulture
作为格式提供程序。

来自

“#”自定义格式说明符用作数字占位符符号。 如果正在格式化的值在以下位置有一个数字: “#”符号出现在格式字符串中,该数字被复制到 结果字符串。否则,将不会在中的该位置存储任何内容 结果字符串

请注意,此说明符从不显示非零的零 有效数字,即使零是字符串中的唯一数字。信息技术 仅当它是所选数字中的有效数字时,才会显示零 正在显示。

您可能需要改用
0.00

(30000).ToString("0.00") // Prints 30000.00
(30000.55).ToString("0.00") // Prints 30000.55
当然,默认情况下,这个
.ToString()
方法使用当前线程区域性。这就是小数分隔符取决于当前区域性的原因。如果总是希望将
作为十进制分隔符,则需要提供一个类似于
的区域性。

将“#”替换为0

for(var j=0;jitem.InterestAmount).ToString(“0.00”)
}

实现这一目标的更简单、更高效的方法。

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 
for(var j=0;jitem.InterestAmount).ToString(“F”)
}
//F:0.00
//F0:0
//F1:0.0
//F2:0.00
//F3:0.000
有关更多与数字相关的格式,请访问

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