我試圖將payRate * hoursWorked
替換爲單個變量grossPay
,但是當我這樣做時,它會爲任何計算返回值0.0。 double grossPay
被故意註釋掉,所以你可以看到我想要做的事情。Java將兩個雙打乘以另一個雙倍
import java.text.*;
import java.util.Scanner;
public class elseIfPayroll{
public static void main(String[] args){
double hoursWorked =0.00;
double payRate =0.00;
int dependents =0;
Scanner keyboard = new Scanner(System.in);
NumberFormat f = new DecimalFormat("#0.00");
System.out.print("Enter pay rate: ");
payRate = keyboard.nextInt();
System.out.print("Enter hours worked: ");
hoursWorked = keyboard.nextInt();
System.out.print("Enter amount of dependents: ");
dependents = keyboard.nextInt();
double grossPay= (payRate * hoursWorked);
//gross pay decision statements
if (hoursWorked<=40) {
System.out.println("Total $ Earned: " + payRate * hoursWorked);
}
else if (hoursWorked >= 40) {
System.out.println("Total $ Earned: " + payRate * hoursWorked +(payRate * 0.5));
}
else if (hoursWorked>=60){
System.out.println("Total $ Earned: " + payRate * hoursWorked + (payRate * 2));
}
//else if statements for dependents
if (dependents == 0){
f.format(payRate * hoursWorked);
}
else if (dependents == 1){
f.format(payRate * hoursWorked - (payRate * hoursWorked*0.04));
}
else if (dependents == 2){
f.format(payRate * hoursWorked - (payRate * hoursWorked*0.0775));
}
else if (dependents == 3){
f.format(payRate * hoursWorked - (payRate * hoursWorked*0.1125));
}
else if (dependents == 4){
f.format(payRate * hoursWorked - (payRate * hoursWorked*0.145));
}
else if (dependents == 5){
f.format(payRate * hoursWorked - (payRate * hoursWorked*0.175));
}
else if (dependents >= 6){
f.format(payRate * hoursWorked - (payRate * hoursWorked*0.2025));
}
System.out.println("New gross Pay: " + f.format(payRate * hoursWorked - (payRate * hoursWorked*0.04)));
}
}
如果你相乘,結果爲0,其中一個因子是0,因爲實數中沒有零除數。 –
我不確定是什麼問題。兩個乘法操作數在註釋掉的乘法點處都是零,所以當然它會得到零結果。我認爲可能是時候[sscce](http://sscce.org/) –
您是否已經調試過您的程序?如果沒有,請執行並找到您的問題。 –