loss of precision-->Required double but compiler required int?
我是Java初学者,面对这个错误。
写一个名为pay的方法,它接受一个实数作为助教的工资,接受一个整数作为助教本周工作的小时数,并返回支付助教的金额。例如,呼叫支付(5.50,6)应返回33.0。
助教应该得到1的"加班"工资?8小时以上的正常工资。例如,呼叫支付(4.00,11)应返回(4.00*8)+(6.00*3)或50.0。
1 2 3 4 5 6 7 8 9 | 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; } |
错误:
1 2 3 4 5 6 7 8 | 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 |
但错误是指向+号。它出了什么问题?上面写着"发现:双倍"。但我希望我的输出是双倍的。但它是按要求写的。
由于
1 2 3 4 5 6 7 8 9 | 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; } |
对于第二个错误,如果您查看类数学,