gpt4 book ai didi

Python 2 - 你会如何向上/向下舍入到最近的 6 分钟?

转载 作者:太空狗 更新时间:2023-10-29 17:02:44 26 4
gpt4 key购买 nike

有很多人四舍五入到最接近的十分钟的例子,但我无法弄清楚四舍五入到最接近的六分钟背后的逻辑。我以为这只是切换几个数字的问题,但我无法让它工作。

我正在使用的代码位于 my Github .我得到的 block 甚至还没有接近工作(不会提供任何输出)是:

def companyTimer():
if minutes % 6 > .5:
companyMinutes = minutes + 1
elif minutes % 6 < 5:
companyMinutes = minutes - 1
else:
companyMinutes = minutes
print companyMinutes

现在看,我发现我的逻辑是不正确的 - 即使它可以工作,代码的加减 1 分钟部分也没有意义。

无论如何,我不知道如何解决这个问题 - 有人能给我指出正确的方向吗?

PS - 这是我在工作中供个人使用的东西.. 不是在我的工作中寻求帮助,但这将帮助我跟踪我的工作时间。不希望出现任何问题。

谢谢!

最佳答案

这是一个舍入到最接近的 x 的通用函数:

def round_to_nearest(num, base):
n = num + (base//2)
return n - (n % base)

[round_to_nearest(i, 6) for i in range(20)]
# [0, 0, 0, 6, 6, 6, 6, 6, 6, 12, 12, 12, 12, 12, 12, 18, 18, 18, 18, 18]

解释:

  • n % basen 除以 base 后剩下的余数。也称为 modulo operator.
  • 简单地从 num 中减去 num%6 会得到 0 表示 0-5,6 表示 6-11,等等。
  • 由于我们想要“舍入”而不是“底限”,我们可以通过预先添加底数的一半 (base//2) 来偏置此结果。

关于Python 2 - 你会如何向上/向下舍入到最近的 6 分钟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29545758/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com