2015-03-14 6 views
-1

Я пытаюсь подсчитать% правильных и неправильных ответов. Когда я запускаю программу и вводим первое правильное значение, она показывает 100%. Однако, когда я набираю неправильный ответ, он показывает% как 0,00%, когда он должен быть 50%, поскольку было 1 право и 1 неправильно. Как я могу заставить это работать правильно. Вот мой код:Как сделать проценты в C#

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); 
} 

method3:

intCorrect = 0; 
intIncorrect = 0; 

if (txtAnswer.Text == (intNum1 * intNum2).ToString()) 
{ 
    intCorrect += 1; 
     lblCorrect.Text = intCorrect.ToString(); 
} 
else 
{ 
    intIncorrect += 1; 
    lblIncorrect.Text = intIncorrect.ToString(); 
} 

getCalc(); 
+1

при делении целых чисел, которые нужно использовать для двойного (или десятичного) значения, чтобы получить правильное значение. В противном случае вы будете делать целочисленное деление, которое всегда приводит к целому числу. –

+0

Кастинг как двойной сделал% работы. Благодарю. знак равно –

ответ

0

Вы должны бросить свои значения десятичного типа (float, double или decimal в зависимости от точности). Выполнение деления с int s сбрасывает десятичное значение.

lblPercent.Text = ((double)intCorrect/(intCorrect + intIncorrect)).ToString("P"); 
Смежные вопросы