我写了
return java.lang.Math.round(someVariable*1.234234);
在函数中进入eclipse,它返回一个int,但它希望我包含(int)使它像这样
return (int) java.lang.Math.round
这是什么(int)在做什么?
谢谢
答案 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)
返回变量的数据类型为casting,long
为int
。
答案 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
更大。因此,您的行为可能会导致信息丢失。你需要在演员的帮助下明确地告诉编译器你知道这一点。