Java平方根整数运算是否不强制转换?

用户1427661:

Math.sqrt()函数将double用作参数并返回double。我正在使用在所有情况下均使用完美平方网格的程序,并且需要获取整数形式的平方根。是这样做的唯一方法是将参数转换为an int,然后返回int-casted的double吗?

帕特里夏(Patricia Shanahan):

投射技术比乍看之下要好得多。

从int到double的转换是准确的。

对于正常的正数,指定Math.sqrt以返回“最接近参数值的真实数学平方根的double值”。如果输入是一个完美的平方int,则结果将是一个int范围内的整数双精度型。

同样,将整数双精度转换为int也是准确的。

最终结果是,转换技术不会在您的情况下引入任何舍入误差。

如果您的程序可以从使用Guava intMath API中受益,则可以使用它做平方根,但是我不会为了避免强制转换而添加对API的依赖。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章