java - 精度损失-->需要 double 但编译器需要 int?

标签 java

我是java初学者,遇到了这个错误。

编写一个名为 pay 的方法,该方法接受一个 TA 工资的实数和一个 TA 本周工作小时数的整数,并返回支付给 TA 的金额。例如,调用 pay(5.50, 6) 应返回 33.0。

对于超过 8 小时的任何时间,助教应获得 1 ½ 正常工资的“加类”工资。例如,调用 pay(4.00, 11) 应返回 (4.00 * 8) + (6.00 * 3) 或 50.0。

public double pay(double x,int y){
    int sum=0;
    double hours=8.0;
    if(y>hours){
       sum=(y-hours)*(1.5*x) + (hours*x);

    }
   return sum;
}

错误:

You have a mismatch between data types. This often occurs when you try to store a real number (double) into a variable or parameter that is an integer (int).
possible loss of precision
found   : double
required: int
       sum=(y-hours)*(1.5*x) + (hours*x);
                             ^
1 error
19 warnings

但是错误指向+号。这是怎么回事? 它说发现:双。但我希望我的输出是双倍的。但它说按要求 int。

最佳答案

由于 sum 是一个 int 并且您在方法中返回 sum,这就是您收到错误的原因。

public double pay(double x,int y){
    double sum=0;
    double hours=8.0;
    if(y>hours){
       sum=(y-hours)*(1.5*x) + (hours*x);

    }
   return sum;
}

对于第二个错误,如果你看一下类 Mathpi()不存在,你必须调用Math类的静态变量,所以它应该是:

public double area(double x){
    x=Math.PI*Math.pow(x,2);
    return x;

}

关于java - 精度损失-->需要 double 但编译器需要 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16078584/

相关文章:

java - 静态工厂方法的实际用例?

java - 检查 JSON 响应是否包含特定值

java - 在scriptlet数组索引中访问struts迭代器的索引值

java - 注册jsp db后无法登录

java - 有没有办法从 Spark 流作业中读取 Kafka 流中的特定偏移量?

java - 如何调整组合框下拉列表的大小?

java - 小程序的主窗口叫什么?如何引用它?

java - 在javafx中的TextField中显示 float

java - 将 hibernate 中的 session 转换为 plein JDBC 连接

java - LibGDX Actor 绘制覆盖