我写了以下内容,但Java不喜欢它!Java - 这个变量初始化代码有什么问题?
int limit = Math.round(Math.sqrt(inputNumber));
从我的IDE建议对的(int)
铸造添加到右侧,但我的印象是,Math.round
将格式化数字为整数呢?
我写了以下内容,但Java不喜欢它!Java - 这个变量初始化代码有什么问题?
int limit = Math.round(Math.sqrt(inputNumber));
从我的IDE建议对的(int)
铸造添加到右侧,但我的印象是,Math.round
将格式化数字为整数呢?
Math.sqrt(x)
返回double
。有几个超载的功能。以double
作为参数的那个将返回long
,而不是int
。
静态长的API:轮(双一)
静态INT:圆形(浮起)静态双:SQRT(双一)
Math.sqrt返回double。
当您向Math.round发送一个double时,它将返回一个长。
所以,Math.round(Math.sqrt(inputNumber))
返回一个很长的时间,并且您必须将其转换为整数。
因为Math.sqrt
返回double
的Math.round
版本被调用返回一个long
,但是你想把它变成一个int
,因此IDE建议。
只看文档,sqrt返回double,round(double)返回long .. – user1130005 2012-02-04 22:40:13