我正在使用ASP.NET MVC 2中的进度条概念。这里我有一个DropDownList,它有10个值。我想计算进度条的百分比,例如来自DropDownList的10个值,我有一个返回值2的查询。所以,我得到的10个值中有2个。“20%已完成”应显示..如何进行此计算
答案 0 :(得分:70)
使用Math.Round()
:
int percentComplete = (int)Math.Round((double)(100 * complete) / total);
或手动舍入:
int percentComplete = (int)(0.5f + ((100f * complete) / total));
答案 1 :(得分:63)
(current / maximum) * 100
。在您的情况下,(2 / 10) * 100
。
答案 2 :(得分:32)
使用C#字符串格式化可以避免乘以100,因为它会使代码更短更清晰,特别是因为括号较少而且可以避免使用舍入代码。
(current / maximum).ToString("0.00%");
//输出 - 16.67%
答案 3 :(得分:7)
数学上,从两个数字中获得百分比:
percentage = (yourNumber / totalNumber) * 100;
而且,从百分比计算:
number = (percentage / 100) * totalNumber;
答案 4 :(得分:4)
您可以保留十进制(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}";
答案 5 :(得分:0)
在我的例子中,我设置了两个整数,并试图计算百分比,并且总是得到 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);
答案 6 :(得分:0)
请记住,如果您有两个整数,您可能需要将其中一个数字转换为两倍
null