为什么 (int) 需要返回 (int) java.lang.Math.round



我写了

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。

所以你必须把长头投射到一个整数。

它正在强制转换返回变量的数据类型,该数据类型是longint

回合有 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。因此,您的操作可能会导致信息丢失。您需要在强制转换的帮助下明确地告诉编译器您知道这一点。

相关内容

最新更新