我写了
return java.lang.Math.round(someVariable*1.234234);
在一个返回 int 的函数中放入 Eclipse,但它希望我包含 (int) 以使其像这样
return (int) java.lang.Math.round
这个(int)在做什么?
谢谢
好吧,如果你看看文档,
http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html
当参数不是浮点数时,Math.round
返回 long。
所以你必须把长头投射到一个整数。
它正在强制转换返回变量的数据类型,该数据类型是long
到int
。
回合有 2 个重载,
长轮(双A);
和
整数(浮点数 a);
由于您编写的 const 是双精度值,因此您需要将其转换为浮动。尝试:
return java.lang.Math.round(someVariable*1.234234f);
使用 double
调用的Math.round
返回一个long
。它在那里将long
结果转换为int
类型...
您返回函数的结果java.lang.Math.round(double a)
该函数是需要int
的函数中的long
。
因此,您必须将函数原型中的返回类型从 int
更改为long
Math.round(double a)
方法返回一个比 int
更大的long
。因此,您的操作可能会导致信息丢失。您需要在强制转换的帮助下明确地告诉编译器您知道这一点。