C# 显示两个小数的值之和
我有一个项目列表,其中一个属性是decimal类型 当我尝试对items属性求和并用两个小数显示它时,当总和为偶数时,它将不起作用 例如: 如果总和是30000,我希望它显示30000.00,现在它只显示30000 但如果总和为30000.55,则显示30000.55 我的视图代码: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
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