在Java中,使用%运算符获取整数除法x / y的余数与Math.IEEEremainder(x,y)方法之间在功能或性能上有区别吗?

最佳答案

除了John B已经指出的类型差异之外,语义上也存在显着差异。 Math.IEEEremainder(x, y)返回x - n * y,其中n是最接近x / y的整数(在出现平局的情况下取偶数整数),而x % y返回x - n * y,其中nx / y的整数部分(即n是对x / y的真实值进行四舍五入的结果趋向于零,而不是趋向于最接近)。

为了说明区别:Math.IEEEremainder(9.0, 5.0)将是-1.0,因为最接近9.0 / 5.0的整数是2,而9.0 - 2 * 5.0-1.0。但是9.0 % 5.0将是4.0,因为9.0 / 5.0的整数部分是1,而9.0 - 1 * 5.04.0

这是Math.IEEEremainderofficial documentation

07-25 21:57