Math.sqrt对于int参数在数学上正确的结果吗?

时间:2019-04-25 23:38:49

标签: java floating-point square-root

给定int x,可以保证(int)Math.sqrt(x)返回所有非负数{的数学正确结果,该结果将被截断为int(即floor(sqrt(x))的精确数学值) {1}}?

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)