给定int
x,可以保证(int)Math.sqrt(x)
返回所有非负数{的数学正确结果,该结果将被截断为int(即floor(sqrt(x))
的精确数学值) {1}}?
答案 0 :(得分:0)
根据Java文档,Math.sqrt()
返回“最接近参数值的真实数学平方根的double值”,将double
转换为int
等效于非负数的下限(对于负数,floor()
截断为负无穷大,而强制截断为0)。我能想到的唯一情况是(int)Math.sqrt(x)
不能执行的工作是,如果平方根的结果太大而无法容纳int
。
其他链接
https://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#sqrt(double)