如何在某些步长范围内生成数字?

发布于 2024-11-15 20:47:51 字数 249 浏览 1 评论 0原文

我想通过一些步骤产生数字, 例如,对于步骤 4,我想生成:

1   -> 0
3   -> 4
4.1 -> 4
15  -> 16
etc.

对于步骤 0.2:

1     -> 1
3     -> 3
4.1   -> 4.2
15.99 -> 16
etc.

您知道生成这样的数字的好公式吗?

I want to produce numbers with some steps,
for example for step 4, i want to produce:

1   -> 0
3   -> 4
4.1 -> 4
15  -> 16
etc.

for step 0.2:

1     -> 1
3     -> 3
4.1   -> 4.2
15.99 -> 16
etc.

Do you know nice formula to produce numbers like these?

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

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

发布评论

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

评论(1

篱下浅笙歌 2024-11-22 20:47:51

看起来您只想将 round() 转换为最接近的 step 倍数。试试这个:

结果 = round(num/step)*step

第 4 步:

  • round(1/4)*4=0*4=0
  • round(3/4)*4=1*4= 4
  • 轮(4.1/4)*4=1*4=4
  • 轮(15/4)*4=4*4=16

步骤0.2:

  • 轮(1/0.2)*0.2=5*0.2=1
  • 回合(3/0.2)*0.2=15*0.2=3
  • 回合(4.1/0.2)*0.2=21*0.2=4.2
  • 回合(15.99/0.2)*4=80*0.2=16

It looks like you just want to round() to the nearest multiple of step. Try this:

result = round(num/step)*step

Step 4:

  • round(1/4)*4=0*4=0
  • round(3/4)*4=1*4=4
  • round(4.1/4)*4=1*4=4
  • round(15/4)*4=4*4=16

Step 0.2:

  • round(1/0.2)*0.2=5*0.2=1
  • round(3/0.2)*0.2=15*0.2=3
  • round(4.1/0.2)*0.2=21*0.2=4.2
  • round(15.99/0.2)*4=80*0.2=16
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文