给定一个 int
x,对于所有非负 x
,(int)Math.sqrt(x)
能否保证返回数学上正确的结果,并截断为 int(即 floor(sqrt(x))
的精确数学值)?
最佳答案
根据 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)
关于java - 对于 int 参数,Math.sqrt 的数学结果是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55858966/