【发布时间】:2016-01-13 13:15:41
【问题描述】:
我读到here remquo 应该返回:
如果成功,则返回在 std::remainder 中定义的除法
x/y的浮点余数,以及符号为x/y的符号且大小全等的值 模 2n 为x/y的积分商的大小,其中n是实现定义的大于或等于3的整数。
现在很明显,我误解了所有技术术语,因为我认为我会取回除法的分数结果。而是这个操作:
int quot;
const float rem = remquo(7.0F, 4.0F, ");
将quot 设置为2,将rem 设置为-1.0!我可以看到这是如何有效的,因为 4.0 * 2 = 8.0 和 7.0 - 8.0 = -1.0。但是为什么我们使用quot 会导致否定的rem?我不应该取回 1 的 quot 和 3.0 的 rem 吗?
【问题讨论】:
-
你说的是C还是C++?它们是不同的语言。
-
@Olaf 这是我要问的一个 C 函数,并且在两种语言中实现相同。如果你能用 C 语言向我解释,你已经用 C++ 向我解释过。或者,如果你可以用 C++ 向我解释,你会用 C 向我解释。
-
你引用的不是C标准,而是C++标准。
-
@Olaf 同C文档:en.cppreference.com/w/c/numeric/math/remquo
-
@JonathanMee 可能相关:stackoverflow.com/questions/11630321/…
标签: c++ c floating-point division modulo