我写
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.rounda 调用的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