我是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"))
,结果仍为零。我不知道为什么我会变零。请帮我如何计算百分比。
谢谢
答案 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
}