谁能告诉我这里我做错了什么。我能够将y转换为long,但同样不适用于x / y。
class Test {
long convert(int x, float y) {
//return (long) x/y; // cannot convert from float to long
return (long)y;
}
}
答案 0 :(得分:19)
这里唯一的问题是如何用括号括起来。如果你写了
,你会没事的return (long) (x / y);
当你写(long) x / y
时,被视为((long) x) / y
,根据Java的输入规则是float
。
答案 1 :(得分:2)
下面
return (long) x/y;
您将x
投射为long
但由于float
整个表达式仍为y
,因此当您尝试返回时,它会显示错误。它与return ((long)x/y);
更好:
return (long) (x/y);