首页 > 解决方案 > 5%10/2 是什么意思?

问题描述

5%10/2

我知道该%符号显示余数,因此该操作应该给出2.5,因为余数5%105。那么5/2就是2.5。但它给了我2

标签: c++

解决方案


在 C 和 C++ 中,整数浮点除法之间存在差异。当您将 2 个整数值相除时,您会得到向下舍入的结果,因此您会得到 2.5 而不是 2。如果您想要 2.5,您应该将其中一个操作数转换为浮点数或只使用浮点数/双精度值:

std::cout << ((double) (5 % 10) / 2) << std::endl; // double cast
std::cout << (5 % 10 / 2.0) << std::endl; // double literal

推荐阅读