百分比计算

Rob*_*ood 55 c# asp.net asp.net-mvc-2 drop-down-menu

我正在使用ASP.NET MVC 2中的进度栏​​概念.这里我有一个DropDownList,它有10个值.我想计算进度条的百分比,例如来自DropDownList的10个值,我有一个返回值2的查询​​.因此,我得到的10个值中有2个"应该显示20%已完成".如何做这个计算

Sog*_*ger 76

使用Math.Round():

int percentComplete = (int)Math.Round((double)(100 * complete) / total);
Run Code Online (Sandbox Code Playgroud)

或手动舍入:

int percentComplete = (int)(0.5f + ((100f * complete) / total));
Run Code Online (Sandbox Code Playgroud)

  • 如果您正在用钱做任何事情,我真的希望您不要使用“如何计算百分比”的信息:P如果您愿意,请阅读更多有关浮点精度,银行取整的信息,尤其是“专业责任保险” (3认同)

Nic*_*uet 67

(current / maximum) * 100.在你的情况下,(2 / 10) * 100.

  • Count和DDLValues是整数,所以你的除法是一个"整数除法",返回整数结果(你不想要的女巫).尝试将Count或DDLValues转换为double.`(((double)Count/DDLValues)...` (2认同)

Hab*_*eeb 34

使用C#String格式,您可以避免乘以100,因为它会使代码更短更清晰,特别是因为括号较少而且可以避免舍入代码.

(current / maximum).ToString("0.00%");
Run Code Online (Sandbox Code Playgroud)

//输出 - 16.67%


Bro*_*ski 9

您可以将百分比保留为十进制(value \ total),然后当您想呈现给人类时,您可以使用Habeeb 的 答案或使用字符串插值,您可以获得更清晰的东西:

var displayPercentage = $"{(decimal)value / total:P}";
Run Code Online (Sandbox Code Playgroud)

或者

//Calculate percentage earlier in code
decimal percentage = (decimal)value / total;
...
//Now render percentage
var displayPercentage = $"{percentage:P}";
Run Code Online (Sandbox Code Playgroud)

  • 我对这里介绍的所有其他方法都遇到了麻烦,但这个有效。 (2认同)

Son*_*dor 8

在数学上,从两个数字中获得百分比:

percentage = (yourNumber / totalNumber) * 100;
Run Code Online (Sandbox Code Playgroud)

而且,从百分比计算:

number = (percentage / 100) * totalNumber;
Run Code Online (Sandbox Code Playgroud)


Mel*_*per 5

请记住,如果您有两个整数,您可能需要将其中一个数字转换为双倍

(double)i / events.Count * 100
Run Code Online (Sandbox Code Playgroud)