【发布时间】:2013-04-18 08:58:31
【问题描述】:
我是java初学者,遇到了这个错误。
编写一个名为 pay 的方法,它接受一个实数表示助教的薪水和一个整数表示助教本周工作的小时数,并返回支付助教的金额。例如,调用 pay(5.50, 6) 应该返回 33.0。
对于超过 8 小时的任何小时,TA 应获得 1 ½ 正常工资的“加班”工资。例如,通话工资 (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;
}
错误:
您的数据类型不匹配。当您尝试将实数 (double) 存储到整数 (int) 的变量或参数中时,通常会发生这种情况。
可能的精度损失
发现:双
必需:整数
总和=(y-小时)*(1.5*x)+(小时*x);
^
1 个错误
19 个警告
但是错误指向了+号。有什么问题吗? 它说找到:双。但我希望我的输出翻倍。但它说根据需要int。
【问题讨论】:
-
顺便说一句,在处理金钱时,最好使用
BigDecimal类来避免浮点运算问题。见this answer。
标签: java