将数字舍入为一组给定值

blu*_*ers 0 rounding python-3.x

这里谈论Python 3。

我希望将数字四舍五入为一组给定的可能变化的值

假设value_set = [x, y, z]为了这个例子,x, y, z = 1, 3.12, 4我正在寻找一个函数,它将给定的浮点四舍五入到最接近的数字

custom_round(0) --> 1

custom_round(2.7) --> 3.12

请注意,它应该足够通用,value_set长度也会有所不同

omr*_*don 6

x-n当键是(x 是列表中的每个项目)的绝对值时,您可以使用 min 函数来查找列表中的最小值。

value_set = [1, 3.12, 4]

def return_closest(n):
  return min(value_set, key=lambda x:abs(x-n))

number_to_check = 3
print (return_closest(number_to_check))

>>> 3.12
Run Code Online (Sandbox Code Playgroud)