在此链接中阅读了@anton的答案,我试图查看它是否确实是。remainder(x, y)
x-(round(x/y)*y)
运行的值的代码x=5.
和y=2.
。我有:
printf("the value of remainder is %f\n",remainder(x, y));
printf("the value of remainder is %f\n",x-(round(x/y)*y));
余数的值为1.000000
余数的值为-1.000000
来自维基百科:
浮点余数。这与正常的模运算不同,对于两个正数可以为负。它返回 x–(round(x / y)·y)的精确值。
安东的解释是错误的,还是我遗漏了一些东西?
两者之间有细微的差别remainder
。从手册页:
restder()函数计算x除以y的余数。返回值是xn * y,其中n是值x / y,四舍五入到最接近的整数。如果xn * y的绝对值为0.5,则选择n为偶数。
因此,在中途情况下,由执行的舍入部分remainder
不会舍入为零,而是舍入为最接近的偶数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句