舍入到任意除法?

发布于 2024-10-17 01:12:54 字数 107 浏览 2 评论 0原文

我想根据任意除法进行舍入,例如,我得到一个从 0 到 1 的数字,我想根据除法将其舍入为 48,例如,如果我得到类似 5/96 的东西,我想要 2/48 或 3/48 。有什么好的公式可以做到这一点?

I want to round according to arbitrary divisions, e.g. I get a number from 0 to 1 and I want to round it according to divisions into 48ths, e.g. if I get something like 5/96, i want either 2/48 or 3/48. What's a good formula to do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一腔孤↑勇 2024-10-24 01:12:55

与四舍五入到小数点相同。如果您有 n 个“分区”和数字 x,请执行 round(x*n)/n
在您的示例中,它将是 round((5/96)*48)/48 = round(2.5)/48 = 2/48

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

The same as with rounding to decimal signs. If you have n 'divisions' and number x, do round(x*n)/n.
In your example, it'll be round((5/96)*48)/48 = round(2.5)/48 = 2/48

round can be replaced with floor or ceil, depending on the direction you want.

最美不过初阳 2024-10-24 01:12:55

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

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

Assumes integer division, so it will round down:

float retVal = scaleRange(in, oldMin, oldMax, newMin, newMax) {
  return (in / ((oldMax - oldMin) / (48 - 0))) + 0;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文