首页 > 解决方案 > 四舍五入到增量 Python

问题描述

我正在尝试编写一个将start列表值四舍五入到最接近的 0.25 值的代码。我怎么能做到这一点?所以start列表中的第一个索引是3.645并且将被四舍五入,3.5因为. 由于最后一个索引已经是 0.25 的倍数,因此保持为..0, . 25, 0.5, 0.750.2522

start = [3.645, 33.54656, 1.77, 1.99, 2]

预期输出:

[3.5, 33.5, 1.75, 1.75, 2]

标签: pythonpython-3.xlistmathrounding

解决方案


这是 Python,可能有一些花哨的包可以让你这样做,但这 [int(4*x)/4 for x in start]是一种方法。您也可以这样做[x - x % .25 for x in start](模运算符确实适用于非整数模数)。

但是,我注意到您的最后一个数字是 just 2,而不是2.0。如果您希望整数不被转换为浮点数,您将不得不做一些更复杂的事情,例如[int(x) if int(x) == x else int(4*x)/4 for x in start]. 而且,如果您希望将数字转换为int四舍五入后的整数,则必须更加复杂,例如[x - x%.25 if x%1 > .25 else int(x) for x in start]


推荐阅读