0

我写

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

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

 return (int) java.lang.Math.round

这个(int)在做什么?

谢谢

4

6 回答 6

3

好吧,如果您查看文档,

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

Math.round当它的参数不是浮点数时返回一个long。

因此,您必须将 long 转换为 int。

于 2012-10-17T09:40:35.997 回答
0

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

于 2012-10-17T10:03:06.120 回答
0

Math.rounda 调用的double返回 a long。它在那里将long结果转换为int类型......

于 2012-10-17T09:40:05.577 回答
0

它将返回的变量的数据类型转换long为a int

于 2012-10-17T09:41:00.447 回答
0

round 有 2 个重载,

长轮(双a);

int round(float a);

由于您编写的 const 是双精度数,因此您需要将其转换为浮点数。尝试:

return java.lang.Math.round(someVariable*1.234234f);
于 2012-10-17T09:43:15.780 回答
0

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

于 2012-10-17T09:44:22.463 回答