以0.05为增量四舍五入

时间:2019-06-28 14:50:11

标签: python python-3.x python-3.7

我希望四舍五入为0.05。例如,如果我有一个数字1.01,则必须将其四舍五入为1.05。是否有任何可用于执行此操作的python库?

3 个答案:

答案 0 :(得分:3)

我将通过以下方式解决此问题:

import math

a = 1.01
b = a*20
c = math.ceil(b)
d = c/20

print(d)

我知道四舍五入到最接近的整数值很容易,因此我对我的数字进行了变换,因此我不想递增0.05,而是想递增1。这是通过将20乘以0.05*20=1来完成的。然后,我可以将较高的20x四舍五入到最接近的整数,然后除以20得到我想要的结果。

还要注意math已包含在Python中,因此无需下载新模块!

答案 1 :(得分:2)

您可以执行以下操作:

import math

def round_by_05(num):
    check_num = num * 20
    check_num = math.ceil(check_num)

    return check_num / 20

这给出了:

>>> round_by_05(1.01)
1.05
>>> round_by_05(1.101)
1.15

答案 2 :(得分:2)

通用解决方案(无需math.ceil()

def round_to_next(val, step):
    return val - (val % step) + (step if val % step != 0 else 0)

给出:

>>> round_to_next(1.04, 0.05)
1.05
>>> round_to_next(1.06, 0.05)
1.1
>>> round_to_next(1.0, 0.05)
1.0