假设我得到整数x
和y
(满足x <= y
一个数字,0
因此它们尤其可以被二整除)。然后我知道他们的平均值avg = ((x+y) / 2)
也是一个整数。我想找到这个中点四舍五入的分辨率100
。换句话说,如果我的两个输入是 75200 和 75300,那么平均值是 75250 并四舍五入到最接近的值100
(但不超过或等于更大的数字)强制答案为 75200。
如何在不首先将所有内容除以 100 并使用以下浮点运算的情况下实现此逻辑:
x + std::floor((y - x) * .5 * 100 + .5)*0.01
换句话说,我怎样才能在没有浮点值的情况下执行上述操作,但在分辨率下获得相同的行为100
而不是0.01
?