10

谁能告诉我我在这里做错了什么。我可以将 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;
    }

}
4

2 回答 2

24

这里唯一的问题是如何用括号括起来。你写就好了

return (long) (x / y);

当你写的时候(long) x / y,那被当作((long) x) / y,这是float根据 Java 的打字规则。

于 2013-07-09T17:08:10.280 回答
4

这里

return (long) x/y; 

您正在转换xlong但整个表达式仍然是float因为,y因此当您尝试返回它时,它会显示错误。它与return ((long)x/y);

更好的 :

return (long) (x/y);
于 2013-07-09T17:10:17.533 回答