C# 如何在c中完成百分比#
我试图让我的程序计算正确答案与错误答案的百分比。当我运行程序并输入第一个正确值时,它显示100%。然而,当我输入错误的答案时,它将%显示为0.00%,而它应该是50%,因为有1对1错。我如何让它正常工作。这是我的密码:C# 如何在c中完成百分比#,c#,percentage,C#,Percentage,我试图让我的程序计算正确答案与错误答案的百分比。当我运行程序并输入第一个正确值时,它显示100%。然而,当我输入错误的答案时,它将%显示为0.00%,而它应该是50%,因为有1对1错。我如何让它正常工作。这是我的密码: private void getCalc() { lblPercent.Text = (intCorrect / (intCorrect + intIncorrect)).ToString("P"); getRan(); lblFirstNum.Text
private void getCalc()
{
lblPercent.Text = (intCorrect / (intCorrect + intIncorrect)).ToString("P");
getRan();
lblFirstNum.Text = intNum1.ToString();
lblSecNum.Text = intNum2.ToString();
txtAnswer.Clear();
txtAnswer.Focus();
}
private void getRan()
{
Random myRandom = new Random();
intNum1 = myRandom.Next(0, 10);
intNum2 = myRandom.Next(0, 10);
}
方法3:
intCorrect = 0;
intIncorrect = 0;
if (txtAnswer.Text == (intNum1 * intNum2).ToString())
{
intCorrect += 1;
lblCorrect.Text = intCorrect.ToString();
}
else
{
intIncorrect += 1;
lblIncorrect.Text = intIncorrect.ToString();
}
getCalc();
您需要将值强制转换为十进制类型(
float
、double
或decimal
,具体取决于精度)。用int
s除法将删除十进制值
lblPercent.Text = ((double)intCorrect / (intCorrect + intIncorrect)).ToString("P");
除法整数时,需要转换为双精度(或十进制)以获得正确的值。否则,您将执行整数除法,这将始终导致一个整数。将其强制转换为double会使%起作用。谢谢