所以我正在尝试计算国民保险,我正在使用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());
}
}
他们没有返回正确的值。有人可以帮忙吗?
答案 0 :(得分:1)
在Java中,如果条件仅处理Boolean
类型或boolean
premitive。
calculateWeeklyEarning()
和upperEarningLevel
的返回值是可比较的
答案 1 :(得分:0)
检查calculateWeeklyEarning()的返回是否小于或等于upperEarningLevel。 if语句没有问题。