请让我知道如何将十进制数字(如0.53124)舍入到最接近的1/16倍数(即0.5)。同样地,当你绕0.46875时,我们必须得到0.5。感谢
答案 0 :(得分:2)
floor(0.53124 * 16 + 0.5) / 16
floor(0.46875 * 16 + 0.5) / 16
floor(x * 16 + 0.5) / 16
答案 1 :(得分:1)
我想,你可以乘以16,调用round(double x)
并除以16. noob code:
double x;
x=x*16;
x=round(x);
x=x/16;
和一行代码:
double x;
x=round(x*16)/16;
答案 2 :(得分:1)
C代码:
answer = (int) ((x + 1.0/32.0) * 16) / 16.0;
Python验证:
>>> int(((.53124 + 1.0/32) * 16)) / 16.0
0.5
>>> int(((.46875 + 1.0/32) * 16)) / 16.0
0.5
>>>