假设我得到整数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?