【发布时间】:2020-09-23 04:21:12
【问题描述】:
在我编写的代码中,我使用了以下两个函数来计算显示的负数的模数。
fmod(-10,11)
(-10, 11)
虽然 correct answer is 1。它始终显示c++ 中的答案-10。我该如何解决?
【问题讨论】:
-
"正确答案是 1" 这是约定俗成的问题,不同的约定说正确答案是
-10
在我编写的代码中,我使用了以下两个函数来计算显示的负数的模数。
fmod(-10,11)
(-10, 11)
虽然 correct answer is 1。它始终显示c++ 中的答案-10。我该如何解决?
【问题讨论】:
-10
double fmod (double numer, double denom);
此函数计算的除法运算x/y的浮点余数正是值x - n*y,其中n是x/y,其小数部分被截断。
返回值与x符号相同,幅度小于y。
在您的情况下,它是-10 - (-10)/11 * 11 = -10 - 0 * 11 = -10,这对于fmod 的实现是正确的。如果您需要其他答案,您应该实现自己的版本,因为 modulo 以不同的方式定义负数。
【讨论】: