【发布时间】:2017-01-29 11:28:51
【问题描述】:
我需要将除以某个正常数的实数值与最接近的较低整数对齐,而不管它们的符号如何。示例是(这里的反斜杠代表我想要的运算符)
21,5 \ 2 = 10
-21,5 \ 2 = -11
52,3 \ 2 = 26
-52,3 \ 2 = -27
是否有一个简短的操作员可以做到这一点?通常的“斜杠”(“/”)运算符在 C++ 中向零舍入(前段时间已成为标准)(例如 -52.6 / 2 = -26)。
【问题讨论】:
-
std::floor(a/b) -
不,c++中没有这样的运算符
-
浮点除法根本不做任何舍入。
-52.6/2在我的机器上是-26.30000000000000071054273576010018587112427。 -
@Leon 这仅在 a 是浮点数时有效。我有时也有整数,无所谓。
-
然后将整数转换为浮点数并使用
std::floor
标签: c++ integer-division floor-division