该Math.sqrt()函数将double作为参数并返回double.我正在使用一个在所有情况下都使用完美方格的程序,我需要以整数形式获得平方根.是唯一的方法来执行此操作将参数转换为a int然后返回一个int双重的?
Pat*_*han 25
施法技术比初看起来要好得多.
从int到double的转换是准确的.
对于正常正数,Math.sqrt被指定为返回"最接近参数值的真数学平方根的双精度值".如果输入是完美的方形int,则结果将是int范围内的整数值double.
类似地,将整数值double转换回int也是精确的.
实际效果是,施法技术不会在您的情况下引入任何舍入误差.
如果您的程序将从使用Guava intMath API中受益,您可以使用它来执行平方根,但我不会为了避免强制转换而添加对API的依赖.
Ami*_*ani 10
您始终可以使用Google Guava IntMath API.
final int sqrtX = IntMath.sqrt(x, RoundingMode.HALF_EVEN);
Run Code Online (Sandbox Code Playgroud)