尝试用java计算工资单

尝试用java计算工资单,java,if-statement,Java,If Statement,我必须弄清楚总工资是否在“某某”之间,这是“这个”税率,等等。我认为我做得不错,但如果我输入一个高的工作小时数,它会将每个纳税答案作为一个答案输出。。。这样“扣减额为275.0165.0770.0000000000001” 我这么做是不是因为我想得太多了? 非常感谢你的帮助 import java.util.Scanner; public class prob2 { public static void main(String[] args){ Scanner in =

我必须弄清楚总工资是否在“某某”之间,这是“这个”税率,等等。我认为我做得不错,但如果我输入一个高的工作小时数,它会将每个纳税答案作为一个答案输出。。。这样“扣减额为275.0165.0770.0000000000001”

我这么做是不是因为我想得太多了? 非常感谢你的帮助

import java.util.Scanner;
public class prob2
{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);

        double range = (168);

        System.out.println("Enter the number of hours worked in a week:");
        double hours = in.nextDouble();

        System.out.println("Enter rate per hour:");
        double rate = in.nextDouble();

        double overtimeHours = hours - 40;
        double overtimePay = (overtimeHours * rate) * 1.5;
        double basePay = (hours - overtimeHours) * rate;
        double grossPay = basePay + overtimePay;
        double socialSecurity = .1 * grossPay;
        double medical = .06 * grossPay;

        if (overtimeHours < 0 )
        {
            System.out.println("Number of overtime hours are " + 0);
        }
        else
        {
            System.out.println("Number of overtime hours are " + overtimeHours);
        }

        if (overtimeHours < 0 )
        {
            System.out.println("Base pay is " + hours * rate);
        }
        else
        {
            System.out.println("Base pay is " + basePay);
        }

        if (overtimeHours < 0 )
        {
            System.out.println("Overtime pay is " + 0);
        }
        else
        {
            System.out.println("Overtime pay is " + overtimePay);
        }        

        if (grossPay < 0 )
        {
            System.out.println("Gross pay is " + hours * rate);
        }
        else
        {
            System.out.println("Gross pay is " + grossPay);
        }  

        if (grossPay > 0 && grossPay < 43)
        {
            System.out.println("Deductions are " + socialSecurity + medical);
        }
        else

        if (43.01 < grossPay && grossPay < 218.00)         
        {
            System.out.println("Deductions are " + socialSecurity + medical + (.10 * grossPay));
        }
        else

        if (218.01 < grossPay && grossPay < 753.00)              
        {
            System.out.println("Deductions are " + socialSecurity + medical + (.15 * grossPay));

        }
        else

        if (grossPay > 0 && 753.01 < grossPay && grossPay < 1762.00)              
        {
            System.out.println("Deductions are " + socialSecurity + medical + (.25 * grossPay));

        } 
        else

        if (1762.01 < grossPay && grossPay < 3627.00)              
        {
            System.out.println("Deductions are " + socialSecurity + medical + (.28 * grossPay));

        }   
    }
}
import java.util.Scanner;
公共类问题2
{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
双量程=(168);
System.out.println(“输入一周工作的小时数:”);
双倍小时=in.nextDouble();
System.out.println(“输入每小时的速率:”);
倍率=英寸下一倍率();
双倍超时小时数=小时数-40;
双倍加班工资=(加班时间*费率)*1.5;
双基薪=(小时-超时)*费率;
双倍总工资=基本工资+超期工资;
双重社会安全=0.1*grossPay;
双重医疗=0.06*grossPay;
如果(超时小时数<0)
{
System.out.println(“加班小时数为“+0”);
}
其他的
{
System.out.println(“加班小时数为”+加班小时数);
}
如果(超时小时数<0)
{
系统输出打印项次(“基本工资为”+小时*费率);
}
其他的
{
System.out.println(“基本工资为”+基本工资);
}
如果(超时小时数<0)
{
System.out.println(“加班费为”+0);
}
其他的
{
System.out.println(“加班费为”+加班费);
}        
如果(格罗斯比<0)
{
系统输出打印项次(“总工资为”+小时*费率);
}
其他的
{
系统输出打印项次(“总工资为”+总工资);
}  
如果(格罗斯比>0&&格罗斯比<43)
{
System.out.println(“扣除额为”+社会保障+医疗保险);
}
其他的
如果(43.01<格罗斯比&格罗斯比<218.00)
{
系统输出打印项次(“扣除额为”+社会保障+医疗保险+(.10*grossPay));
}
其他的
如果(218.01<格罗斯比&格罗斯比<753.00)
{
系统输出打印项次(“扣除额为”+社会保障+医疗保险+(.15*grossPay));
}
其他的
如果(格罗斯比>0和753.01<格罗斯比和格罗斯比<1762.00)
{
系统输出打印项次(“扣除额为”+社会保障+医疗保险+(.25*grossPay));
} 
其他的
如果(1762.01<格罗斯比&格罗斯比<3627.00)
{
系统输出打印项次(“扣除额为”+社会保障+医疗保险+(.28*grossPay));
}   
}
}

请将您的金额用括号括起来:

System.out.println("Deductions are " + (socialSecurity + medical));
在这种情况下,它将首先创建sum,然后将结果连接到字符串,否则它将逐个连接到socialSecurity,然后再连接到medical


同样的规则适用于代码中类似的情况。

请将您的总和括在括号中:

System.out.println("Deductions are " + (socialSecurity + medical));
在这种情况下,它将首先创建sum,然后将结果连接到字符串,否则它将逐个连接到socialSecurity,然后再连接到medical

同样的规则适用于代码中类似的情况