如何计算C#中数字的百分比?

时间:2016-06-05 11:43:54

标签: c#

我是C#的新手,我正在使用Windows窗体。我想用简单的数学计算一个数字的百分比。例如:

计算80%的25%。

double result` = (80 / 100) * 25

结果= 20

另一个例子:30%的25%= 7.5

然而,当我测试这种计算百分比的方法时,我总是在MessageBox.Show()

得到零结果
private void button1_Click(object sender, EventArgs e)
{
    double result;             

    result = (80 / 100) * 25;
    MessageBox.Show(result.ToString());
}

MessageBox.Show()始终显示的结果为零,我尝试了MessageBox.Show(result.ToString("F"))MessageBox.Show(result.ToString("0.00")),结果仍为零。我不知道为什么我会变零。请帮我如何计算百分比。

谢谢

4 个答案:

答案 0 :(得分:7)

问题是整数除法。

整数除法产生整数。如果要将结果转换为相应的double / float / decimal。

result = ((double) 80 / 100)* 25;

答案 1 :(得分:2)

您的计算中的数字属于int类型,且必须为double类型,否则结果将自动转换为int

只要其中一个输入类型为double,结果也会使用该类型,而不会在0之后删除数字。

试试这个:

result = (80.0 / 100.0)* 25.0;

答案 2 :(得分:1)

使用以下扩展方法

public static double Percent(this double number,int percent)
{
    //return ((double) 80         *       25)/100;
    return ((double)number * percent) / 100;
}

像这样使用

double result = 25.0.Percent(80);

答案 3 :(得分:1)

您的代码中存在两个问题 首先是整数除法,由其他答案说明 其次是你的数学逻辑,没有人说。

使用以下代码修复这两个问题。

private void button1_Click(object sender, EventArgs e)
{
    double result;             
    result = (25f / 100f)* 80;
    MessageBox.Show(result.ToString()); //prints 20
}