【发布时间】:2011-06-01 11:23:35
【问题描述】:
我正在处理 ASP.NET MVC 2 中的进度条概念。这里我有一个 DropDownList,它有 10 个值。我想计算进度条的百分比,例如来自 DropDownList 的 10 个值,我有一个返回值 2 的查询。所以,在 10 个值中,我得到 2 个。应该显示“20% 完成”。如何进行此计算
【问题讨论】:
标签: c# asp.net asp.net-mvc-2 drop-down-menu
我正在处理 ASP.NET MVC 2 中的进度条概念。这里我有一个 DropDownList,它有 10 个值。我想计算进度条的百分比,例如来自 DropDownList 的 10 个值,我有一个返回值 2 的查询。所以,在 10 个值中,我得到 2 个。应该显示“20% 完成”。如何进行此计算
【问题讨论】:
标签: c# asp.net asp.net-mvc-2 drop-down-menu
使用Math.Round():
int percentComplete = (int)Math.Round((double)(100 * complete) / total);
或手动舍入:
int percentComplete = (int)(0.5f + ((100f * complete) / total));
【讨论】:
complete 和 total 应该是 int 还是 double?谢谢。
(current / maximum) * 100。在你的情况下,(2 / 10) * 100。
【讨论】:
(((double)Count / DDLValues)...
使用 C# 字符串格式,您可以避免乘以 100,因为它会使代码更短更清晰,尤其是因为括号更少,并且可以避免向上取整代码。
(current / maximum).ToString("0.00%");
// 输出 - 16.67%
【讨论】:
数学上,从两个数字中得到百分比:
percentage = (yourNumber / totalNumber) * 100;
另外,从百分比计算:
number = (percentage / 100) * totalNumber;
【讨论】:
您可以将百分比保留为小数 (value \ total),然后当您想要呈现给人类时,您可以使用 Habeeb's answer 或使用 string interpolation 您可以获得更干净的东西:
var displayPercentage = $"{(decimal)value / total:P}";
或
//Calculate percentage earlier in code
decimal percentage = (decimal)value / total;
...
//Now render percentage
var displayPercentage = $"{percentage:P}";
【讨论】:
请记住,如果您有两个整数,您可能需要将其中一个数字加倍
(double)i / events.Count * 100
【讨论】:
在我的例子中,我设置了两个整数,并尝试计算百分比,并且总是得到 0;
我的代码(之前)
int Ff_Crm_Count = Ff_Crm.Count();
int Unfollowed_Ff_Crm_Count = Unfollowed_Ff_Crm.Count();
int The_Percentage = (Unfollowed_Ff_Crm_Count / Ff_Crm_Count) * 100);
做了研究之后(之后)
double Ff_Crm_Count = Ff_Crm.Count();
double Unfollowed_Ff_Crm_Count = Unfollowed_Ff_Crm.Count();
double The_Percentage = Math.Round((double)((Unfollowed_Ff_Crm_Count / Ff_Crm_Count) * 100),2);
【讨论】: