将浮点数四舍五入到最近的因子?
我有一个简单的数学问题想要解决。
给定一个数字 x 和一个分辨率 y,我需要找到下一个符合这个分辨率的数字 x'。
比如说:
x = 1.002 y = 0.1 x'= 1.1
x = 0.348 y = 0.1 x'= 0.4
x = 0.50 y = 1 x'= 1
x = 0.32 y = 0.05 x'= 0.35
有没有什么聪明的方法可以在 Python 中做到这一点?
1 个回答
12
import math
def next_multiple(x, y):
return math.ceil(x/y)*y
def try_it(x, y):
print x, y, next_multiple(x, y)
for x, y in [
(1.002, 0.1),
(0.348, 0.1),
(0.50, 1),
(0.32, 0.05)
]:
try_it(x, y)
产生:
1.002 0.1 1.1
0.348 0.1 0.4
0.5 1 1.0
0.32 0.05 0.35
我觉得你第一个例子的输出是错的,x'的正确答案应该是1.1,对吧?