从int到double的转换是准确的.
指定Math.sqrt,对于正常的正数,返回“最接近参数值的真数学平方根的双值”.如果输入是一个完美的方块int,结果将是一个整数值double,它在int范围内.
类似地,该整数值双重转换为int也是精确的.
净效果是铸造技术在您的情况下不会引入任何舍入误差.
如果您的程序否则将受益于使用Guava intMath API,则可以使用它来执行平方根,但是我不会添加对API的依赖关系,以避免转换.