我写了以下内容,但Java不喜欢它!
int limit = Math.round(Math.sqrt(inputNumber));
我的IDE中的建议是在右侧添加(int)
的演员,但我认为Math.round
会将数字格式化为整数?
答案 0 :(得分:4)
Math.sqrt(x)
返回double
。有几个重载的Math.round
函数。以double
作为参数的那个返回long
,而不是int
。
答案 1 :(得分:0)
static long:round(double a)
static int:round(float a)static double:sqrt(double a)
Math.sqrt返回 double 。
当您向Math.round发送一个double时,它会返回 long
所以,Math.round(Math.sqrt(inputNumber))
返回一个long,你必须将它转换为整数。
答案 2 :(得分:0)
由于Math.sqrt
返回double
,Math.round
的版本会被调用,返回long
,但您想将其放入int
,因此IDE的建议。