2012-02-04 56 views
1

我写了以下内容,但Java不喜欢它!Java - 这个变量初始化代码有什么问题?

int limit = Math.round(Math.sqrt(inputNumber)); 

从我的IDE建议对的(int)铸造添加到右侧,但我的印象是,Math.round将格式化数字为整数呢?

+2

只看文档,sqrt返回double,round(double)返回long .. – user1130005 2012-02-04 22:40:13

回答

4

Math.sqrt(x)返回double。有几个超载的功能。以double作为参数的那个将返回long,而不是int

0

见的java.lang.Math

静态长的API:轮(双一)
静态INT:圆形(浮起)

静态双:SQRT(双一)

Math.sqrt返回double
当您向Math.round发送一个double时,它将返回一个
所以,Math.round(Math.sqrt(inputNumber))返回一个很长的时间,并且您必须将其转换为整数。

0

因为Math.sqrt返回doubleMath.round版本被调用返回一个long,但是你想把它变成一个int,因此IDE建议。