python - 四舍五入到增量 Python
问题描述
我正在尝试编写一个将start
列表值四舍五入到最接近的 0.25 值的代码。我怎么能做到这一点?所以start
列表中的第一个索引是3.645
并且将被四舍五入,3.5
因为. 由于最后一个索引已经是 0.25 的倍数,因此保持为..0, . 25, 0.5, 0.75
0.25
2
2
start = [3.645, 33.54656, 1.77, 1.99, 2]
预期输出:
[3.5, 33.5, 1.75, 1.75, 2]
解决方案
这是 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]
推荐阅读
- spring-boot - SpringBoot 2.2 在请求“/*.jsp”时仍然显示白标错误
- c++ - 使用 VC++ (VS2017) 获取 SDL_mixer 的声音文件路径
- reactjs - create-react-app 和大 Heruko Slug 大小?
- javascript - 隐藏 Chart.js 中的所有标签和工具提示并使其非常小
- mysql - 新的 Windows 表情符号/表情符号是否使用 UTF8 或其他编码?
- paperjs - 如何手动使用 PaperScript.compile/execute/load?
- python - 覆盖类继承的属性
- python - 递归函数的问题
- json - 嵌套的 Json 问题我如何获取这些数据?
- plsql - PLSQL 用多个集合更新多行