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

Python中ceil()与floor()取整问题:实现1.4取1、1.5取2的需求

实现1.4取1、1.5取2的四舍五入逻辑

嗨,这完全不是新手问题哦!很多刚接触数值处理的朋友都会被ceil()和floor()的“一刀切”逻辑困扰😉

你需要的其实是标准四舍五入——也就是小数部分≥0.5时向上取整,否则向下取整。下面给你几种常见的实现方式:

1. 直接用语言内置的四舍五入函数

大部分编程语言都自带了实现这个逻辑的函数,举几个常用例子:

  • Python:使用round()函数

    print(round(1.4))  # 输出 1
    print(round(1.5))  # 输出 2
    

    注意:Python的round()采用的是“银行家舍入法”(即当小数部分恰好是0.5时,会取最近的偶数),比如round(2.5)会得到2,round(3.5)得到4。如果需要严格的“0.5就进1”,可以看下面的自定义函数。

  • JavaScript:使用Math.round()方法

    console.log(Math.round(1.4));  // 输出 1
    console.log(Math.round(1.5));  // 输出 2
    

2. 自定义实现严格的四舍五入逻辑

如果内置函数不符合你的需求(比如需要完全严格的0.5进1),可以自己写个简单的函数:
以Python为例:

def round_half_up(num):
    return int(num + 0.5)

print(round_half_up(1.4))  # 输出 1
print(round_half_up(1.5))  # 输出 2
print(round_half_up(2.5))  # 输出 3,符合严格进1的需求

原理很简单:给原数加0.5后取整数部分,刚好实现小数部分≥0.5时进1,否则舍去。

3. 手动判断小数部分

你也可以手动提取小数部分进行判断,逻辑更直观:

def custom_round(num):
    integer_part = int(num)
    decimal_part = num - integer_part
    if decimal_part >= 0.5:
        return integer_part + 1
    else:
        return integer_part

print(custom_round(1.4))  # 输出 1
print(custom_round(1.5))  # 输出 2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:47:00