2013-02-26 57 views
-1

所以我想要计算国家保险,我使用3个IF语句。如果语句的功能在java

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

它们不返回正确的值。有人可以帮忙吗?

+1

什么不行? – BobTheBuilder 2013-02-26 09:57:05

+0

以什么方式不起作用? – 2013-02-26 10:00:35

+0

@ user2110669:为了帮助您,我们至少需要知道您的方法定义以及变量的类型。另外,说“_他们不会返回正确的值_”并不是很具体。你的意见是什么?你期望什么产出(以及为什么)?实际输出是多少? – jlordo 2013-02-26 10:00:42

回答

1

在Java中,如果条件仅处理Boolean类型或boolean前缀。的calculateWeeklyEarning()upperEarningLevel

makesure返回值是compariable

0

检查是否正在被返回的calculateWeeklyEarning()小于或等于upperEarningLevel。 if语句没有问题。