我正在 ASP.NET MVC 2 中研究进度条概念。这里我有一个 DropDownList,它有 10 个值。我想计算进度条的百分比,例如DropDownList 中有 10 个值,我有一个返回值 2 的查询。因此,在 10 个值中我得到 2。应该显示“20% 已完成”。如何进行此计算
使用
Math.Round()
:
int percentComplete = (int)Math.Round((double)(100 * complete) / total);
或手动舍入:
int percentComplete = (int)(0.5f + ((100f * complete) / total));
(current / maximum) * 100
。就你而言,(2 / 10) * 100
。
使用 C# 字符串格式,您可以避免乘以 100,因为它会使代码更短、更清晰,特别是因为括号更少,而且还可以避免向上舍入代码。
(current / maximum).ToString("0.00%");
//输出 - 16.67%
从数学上来说,从两个数字中获取百分比:
percentage = (yourNumber / totalNumber) * 100;
而且,按百分比计算:
number = (percentage / 100) * totalNumber;
请记住,如果您有两个整数,您可能需要将其中一个数字加倍
(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);
//对于其他人
如果您需要使用负数进行计算:
double minValue = -100;
double value = 30;
double maxValue = 100;
double perc = (value - minValue) / (maxValue - minValue);
Console.WriteLine((perc * 100) + "%");