C#4.0 ASP.NET MVC4应用程序包含从Razor视图调用的Out方法。 它接收舍入double作为参数。
protected static string Out( double roundedValue ) {
return roundedValue.ToString();
}
它应该返回舍入值以在视图中显示的小数位数。如参见
Out( Math.Round(1.2f, 2));
应该返回1.20
和
Out( Math.Round(1.2f,3 ));
应返回1.200
实际上第一次通话返回1.2。看起来像尾随零被ToString()删除。 如何强制Out方法返回Round Call中指定的小数位数,
如参见
Out( Math.Round(1.2f, 2));
应该返回1.20
答案 0 :(得分:1)
了解float
和double
不保留尾随零是很重要的。您有两种选择:
decimal
,其中 保留尾随零从您的问题中不清楚哪个选项最合适。如果这是货币价值(例如价格),那么您肯定应该使用decimal
。
答案 1 :(得分:1)
你被错误的数字舍入和显示值的概念。 Math.Round()
仅舍入到您正在使用的小数位数。它对.Tostring()
函数最后放置的小数位数没有影响。您需要使用以下格式输出您想要的方式:
float number = 1.23f;
Console.WriteLine(number.ToString("0.000")); //1.230
Console.WriteLine(number.ToString("0.00")); //1.23
Console.WriteLine(number.ToString("0.0")); //1.2
如果您想了解更多信息,请参阅MSDN page on .ToString() Formatting。 :)