You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Python函数实现浮点数向下取整至最接近的0.25?

修改函数实现向下去整到指定步长

把原来的round()换成math.floor()就能实现始终向下取整的需求,math.floor()会返回小于等于输入值的最大整数,刚好匹配你要的“取小于该浮点数的最接近0.25值”的逻辑。

修改后的代码如下:

import math

def rounder(x, y=0.25):
    return y * math.floor(x / y)

测试你给出的例子:

  • 输入1.80:1.80 / 0.25 = 7.2,math.floor(7.2)得到7,7 * 0.25 = 1.75,符合要求
  • 输入1.99:1.99 / 0.25 = 7.96,math.floor(7.96)得到7,7 * 0.25 = 1.75,符合要求

补充:处理刚好是步长整数倍的情况

如果你的需求是严格小于原浮点数的最接近0.25值(比如输入2.0时要返回1.75,而不是2.0),可以给函数加个判断:

import math

def rounder(x, y=0.25):
    quotient = x / y
    if quotient.is_integer():
        return y * (quotient - 1)
    return y * math.floor(quotient)

内容的提问来源于stack exchange,提问作者zsayle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 16:27:11