C++ STD::div不返回预期结果

C++ STD::div不返回预期结果,c++,C++,我在我的机器上运行了这个代码,它输出:11/5=2.1现在我可能疯了,但11/5=2.2 我读入了引用,它说div_t.rem是x%y,在本例中等于1,但是如果std::div没有返回11/5的预期结果,它怎么能成为语言的一个特性呢 #include <iostream> #include <cstdlib> int main() { std::div_t q; q = std::div(11, 5); std::cout <<

我在我的机器上运行了这个代码,它输出:11/5=2.1现在我可能疯了,但11/5=2.2

我读入了引用,它说div_t.rem是x%y,在本例中等于1,但是如果std::div没有返回11/5的预期结果,它怎么能成为语言的一个特性呢

#include <iostream>
#include <cstdlib>

int main() {

    std::div_t q;
    q = std::div(11, 5);

    std::cout << "11/5 = " << q.quot << '.' << q.rem << std::endl;
}
q、 rem持有剩余部分。11/5=2,余数为1,这些结果没有什么奇怪的地方。

q.rem是整数除法的余数,而不是值的小数部分。这就是std::div的目的:不是除法并给出浮点结果,而是返回商和余数。否则,如果你有各种各样的运算符/,为什么要做一个除法的函数呢?