Java 如何计算小时数、费率、工资,当我编译时,操作符号出现错误。请让我知道如何计算它们
当我编译它的时候,我得到了一个错误,一些操作符号错误,在行代码错误中:Java 如何计算小时数、费率、工资,当我编译时,操作符号出现错误。请让我知道如何计算它们,java,Java,当我编译它的时候,我得到了一个错误,一些操作符号错误,在行代码错误中: Pay = (40 * Rate) + (( Hours - 40) * (1.5 * Rate)); 下面是我使用它的完整代码 import java.io.*; public class Staff { private int Hours; private int Rate; private int Pay; public Staff() { Hours = 0;
Pay = (40 * Rate) + (( Hours - 40) * (1.5 * Rate));
下面是我使用它的完整代码
import java.io.*;
public class Staff {
private int Hours;
private int Rate;
private int Pay;
public Staff() {
Hours = 0;
Rate = 0;
Pay = 0;
}
public void GetEmployee() {
Console console = System.console();
System.out.println(" Please Enter Hours");
Hours = Integer.parseInt(console.readLine());
System.out.println(" Please Enter Rate");
Rate = Integer.parseInt(console.readLine());
}
public void ShowEmployee() {
Console console = System.console();
System.out.println(" Pays = " + Pay);
}
public void ComputePay() {
if (Hours > 40) {
Pay = (40 * Rate) + ((Hours - 40) * (1.5 * Rate));
} else {
Pay = (Hours * Rate);
}
}
}
是的,1.5是双精度的,不是整数。薪酬变量的类型必须为double:
package cruft;
/**
* Staff
* @author Michael
* @link https://stackoverflow.com/questions/27465427/how-to-compute-hours-rate-pay-when-i-compile-i-am-getting-error-with-operatio
* @since 12/13/2014 8:27 PM
*/
import java.io.Console;
public class Staff {
private int hours;
private int rate;
private double pay;
public Staff() {
hours = 0;
rate = 0;
pay = 0;
}
public void getEmployee() {
Console console = System.console();
System.out.println(" Please Enter hours");
hours = Integer.parseInt(console.readLine());
System.out.println(" Please Enter rate");
rate = Integer.parseInt(console.readLine());
}
public void showEmployee() {
Console console = System.console();
System.out.println(" Pays = " + pay);
}
public void computePay() {
if (hours > 40) {
pay = (40 * rate) + ((hours - 40) * (1.5 * rate));
} else {
pay = (hours * rate);
}
}
}
学习并遵循Java编码标准
神奇的数字很糟糕。您的代码显然会显示“超过40小时的时间”,但最好使用变量名来说明这一点
如果有人工作少于40小时怎么办?他们的工资少吗
你的抽象性很差。我不会在对象中嵌入控制台输入。如果您决定在web应用程序中使用此应用程序,该怎么办?你必须重写,因为没有控制台
我认为员工是员工的集合。这位员工的名字不是更好吗
showEmployee()?最好编写一个toString()方法。//将强制转换添加到“int”
Pay = (int) ((40 * Rate) + ((Hours - 40) * (1.5 * Rate)));
如果出现编译错误,请显示它。如果出现运行时异常,则显示stacktrace。如果有人工作时间少于40小时,他将按常规“Pay=hours*Rate”获得报酬;如果有人工作时间少于40小时,他将按常规“Pay=hours*Rate”获得报酬;实际上,这是一个子类,我将在其上添加更多代码…这就是我命名ShowEmployee()的原因;