为什么在返回(int)java.lang.Math.round中需要(int)?

时间:2012-10-17 09:39:00

标签: java return-type

我写了

return java.lang.Math.round(someVariable*1.234234);

在函数中进入eclipse,它返回一个int,但它希望我包含(int)使它像这样

 return (int) java.lang.Math.round

这是什么(int)在做什么?

谢谢

6 个答案:

答案 0 :(得分:3)

好的,如果你看一下Docs,

http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html

Math.round参数不是浮点数时,

{{1}}会返回一个长的。

所以你必须把长期转换为int。

答案 1 :(得分:0)

使用Math.round调用的double会返回long。可以将long结果转换为int类型...

答案 2 :(得分:0)

返回变量的数据类型为castinglongint

答案 3 :(得分:0)

round有2次重载,

长圆(双a);

int round(float a);

因为你写的const是double,你需要将它转换为float。 尝试:

return java.lang.Math.round(someVariable*1.234234f);

答案 4 :(得分:0)

您将在需要java.lang.Math.round(double a)的函数中返回long函数int的结果。
因此,您必须将函数原型中的返回类型从int更改为long

答案 5 :(得分:0)

Math.round(double a)方法返回的long类型比int更大。因此,您的行为可能会导致信息丢失。你需要在演员的帮助下明确地告诉编译器你知道这一点。