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