-1

だから私は国民保険を計算しようとしていて、3 つの IF ステートメントを使用しています。

/does not work
public double calculateNotContOut(){
    if (calculateWeeklyEarning()<upperEarningLevel){
        return (((calculateWeeklyEarning()-primaryThreshold)*primaryClassBetween)*52);
    }
    else {
        return (((upperEarningLevel-primaryThreshold)*primaryClassBetween+(calculateWeeklyEarning()-upperEarningLevel)*primaryClassAbove)*52);
    }
}
//does not work
public double calculateContOut(){
    if (calculateWeeklyEarning()<upperEarningLevel){
        return (((calculateWeeklyEarning()-primaryThreshold)*calculateReducedContribution())*52);
    }
    else{
        return (((upperEarningLevel-primaryThreshold)*calculateReducedContribution()+(calculateWeeklyEarning()-upperEarningLevel)*primaryClassAbove)*52);
    }
}

public double calculateNationalInsurance(){
    if (contractedOut){
        return (calculateContOut());
    }
    else {
        return (calculateNotContOut());
    }
}

それらは正しい値を返しません。誰か助けてくれませんか?

4

2 に答える 2

1

Java では、if 条件はBoolean型またはbooleanプリミティブのみを扱います。

calculateWeeklyEarning()との戻り値をupperEarningLevel比較可能にする

于 2013-02-26T09:58:19.040 に答える
0

calculateWeeklyEarning() が upperEarningLevel 以下で返されているかどうかを確認します。if文は問題ありません。

于 2013-02-26T10:00:19.210 に答える