围绕任意分裂?

时间:2011-02-14 02:50:12

标签: language-agnostic math rounding

我想根据任意分歧进行舍入,例如我得到一个从0到1的数字,我想根据分为48舍入它,例如如果我得到像5/96这样的东西,我想要2/48或3/48。这样做的好方法是什么?

2 个答案:

答案 0 :(得分:2)

与舍入到小数符号相同。如果您有n'分部'和数字x,请执行round(x*n)/n 在您的示例中,它将是round((5/96)*48)/48 = round(2.5)/48 = 2/48

round可以替换为floorceil,具体取决于您想要的方向。

答案 1 :(得分:0)

假设整数除法,因此它将向下舍入:

float retVal = scaleRange(in, oldMin, oldMax, newMin, newMax) {
  return (in / ((oldMax - oldMin) / (48 - 0))) + 0;
}