在Java中,使用%运算符获取整数除法x / y的余数和使用Math.IEEEremainder(x,y)方法之间是否存在任何功能或性能差异?
Math.IEEEremainder(x,y)
返回x-n * y
,其中n
是x / y
最接近的整数(在平局的情况下取偶数),而x%y
返回x-n * y
,其中n
是 x / 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.0
是 4.0
。 Math.IEEEremainder
的官方文档。Math.IEEEremainder
接受并返回 double
,因此当您需要一个 double
结果时应使用它。如果要获取余数,使用 %
,因为它会给出一个 int
,比使用 double
运算更有效率。