我有以下If语句:
private boolean NextLevel(int intCorrectAnswers, int intNumberOfQuestionsAsked) {
if (intNumberOfQuestionsAsked >= 20 && ((intCorrectAnswers / intNumberOfQuestionsAsked) >= .8)){
return true;
} else {
return false;
}
}
我想要的是,如果提出的问题数量至少为20且正确的百分比至少为80%则返回true。
单步执行代码,我至少回答了46个问题并获得除1之外的所有问题,并且它总是返回false。我错过了什么?
答案 0 :(得分:0)
您正在执行整数除法,该除法不会返回浮点值或十进制值,这就是您的结果始终为false的原因。投射你的变量 加倍或浮动以获得所需的结果。
double dResult = ((double)intCorrectAnswers / (double)intNumberOfQuestionsAsked);
if (intNumberOfQuestionsAsked >= 20 && (dResult >= 0.8)) {
return true;
} else {
return false;
}