Android如果声明没有按预期评估

时间:2015-05-06 01:10:06

标签: android if-statement conditional-statements

我有以下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。我错过了什么?

1 个答案:

答案 0 :(得分:0)

您正在执行整数除法,该除法不会返回浮点值或十进制值,这就是您的结果始终为false的原因。投射你的变量 加倍或浮动以获得所需的结果。

double dResult = ((double)intCorrectAnswers / (double)intNumberOfQuestionsAsked);
if (intNumberOfQuestionsAsked >= 20 && (dResult >= 0.8)) {
    return true;
} else {
    return false;
}