Java Float to Long Typecast

时间:2013-07-09 17:06:07

标签: java

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

}

2 个答案:

答案 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);