【问题标题】:Rounding down to increments Python [duplicate]四舍五入到增量Python [重复]
【发布时间】:2021-09-06 01:34:48
【问题描述】:

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

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

预期输出:

[3.5, 33.5, 1.75, 1.75, 2]

【问题讨论】:

  • def x_round(x): return round((x*4)/4)

标签: python python-3.x list math rounding


【解决方案1】:

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

但是,我注意到您的最后一个号码只是 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]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-14
    • 1970-01-01
    相关资源
    最近更新 更多