#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 = 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 amp;amp; grossPay < 43)
{
System.out.println("Deductions are " socialSecurity medical);
}
else
if (43.01 < grossPay amp;amp; grossPay < 218.00)
{
System.out.println("Deductions are " socialSecurity medical (.10 * grossPay));
}
else
if (218.01 < grossPay amp;amp; grossPay < 753.00)
{
System.out.println("Deductions are " socialSecurity medical (.15 * grossPay));
}
else
if (grossPay > 0 amp;amp; 753.01 < grossPay amp;amp; grossPay < 1762.00)
{
System.out.println("Deductions are " socialSecurity medical (.25 * grossPay));
}
else
if (1762.01 < grossPay amp;amp; grossPay < 3627.00)
{
System.out.println("Deductions are " socialSecurity medical (.28 * grossPay));
}
}
}
Ответ №1:
Пожалуйста, заключите свою сумму в круглые скобки:
System.out.println("Deductions are " (socialSecurity medical));
В этом случае сначала будет создана сумма, а затем результат будет объединен в строку, в противном случае он будет объединять социальную безопасность, а затем медицинскую по одному.
То же правило подходит для аналогичных случаев в вашем коде.