该Math.sqrt()
函数将double用作参数并返回double。我正在使用在所有情况下均使用完美平方网格的程序,并且需要获取整数形式的平方根。是这样做的唯一方法是将参数转换为an int
,然后返回int
-casted的double吗?
投射技术比乍看之下要好得多。
从int到double的转换是准确的。
对于正常的正数,指定Math.sqrt以返回“最接近参数值的真实数学平方根的double值”。如果输入是一个完美的平方int,则结果将是一个int范围内的整数双精度型。
同样,将整数双精度转换为int也是准确的。
最终结果是,转换技术不会在您的情况下引入任何舍入误差。
如果您的程序可以从使用Guava intMath API中受益,则可以使用它做平方根,但是我不会为了避免强制转换而添加对API的依赖。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句