我写
return java.lang.Math.round(someVariable*1.234234);
在一个返回 int 的函数中进入 eclipse 但它希望我包含 (int) 以使其像这样
return (int) java.lang.Math.round
这个(int)在做什么?
谢谢
我写
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。
该Math.round(double a)
方法返回一个long
比 更大的类型int
。因此,您的行为可能会导致信息丢失。您需要在强制转换的帮助下明确告诉编译器您知道这一点。
用Math.round
a 调用的double
返回 a long
。它在那里将long
结果转换为int
类型......
它将返回的变量的数据类型转换long
为a int
。
round 有 2 个重载,
长轮(双a);
和
int round(float a);
由于您编写的 const 是双精度数,因此您需要将其转换为浮点数。尝试:
return java.lang.Math.round(someVariable*1.234234f);
您正在返回函数的结果,该函数java.lang.Math.round(double a)
是long
需要int
.
因此,您必须将函数原型中的返回类型从int
更改为long