Python取整——向上取整、向下取整、四舍五入取整、向0取整

Python取整——向上取整、向下取整、四舍五入取整、向0取整废话少叙 直接上 code 首先 不得不提醒大家一个容易被忽视或者搞混的问题 一般的 0 5 这种末尾是 5 的小数 四舍五入取整应进位 这个进位的意思是 0 5 1 0 5 1 即正负情况不同 都向着远离 0 使得绝对值更大的方向进位向上取整 math ceil importmathma ceil 0 5 gt gt gt 0math ceil

废话少叙,直接上code:

首先,不得不提醒大家一个容易被忽视或者搞混的问题——一般的,0.5这种末尾是5的小数,四舍五入取整应进位。这个进位的意思是:-0.5 → -1;0.5 → 1.即正负情况不同,都向着远离0,使得绝对值更大的方向进位

  • 向上取整:math.ceil()如code所见,math.ceil()严格遵循向上取整,所有小数都是向着数值更大的方向取整,不论正负数都如此
    import math math.ceil(-0.5) >>> 0 math.ceil(-0.9) >>> 0 math.ceil(0.3) >>> 1
  • 四舍五入:round()
    round(-2.5) >>> -2 round(-1.5) >>> -2 round(-0.5) >>> 0 round(0.5) >>> 0 round(1.5) >>> 2 round(2.5) >>> 2

     如code所示,round()当不传入第二个参数时默认取整,具体就是按照四舍五入来。但值得一提的是这里对小数末尾为5的处理方法:当末尾的5的前一位为奇数:向绝对值更大的方向取整(比如-1.5、1.5处理结果);当末尾的5的前一位为偶数:去尾取整(比如-2.5,-0.5,0.5和2.5的处理结果)。

  • 向下取整:math.floor()
    math.floor(-0.3) >>> -1 math.floor(0.9) >>> 0

    简单且忠实地向下取整,不再讨论

  • 两个有趣且特殊的Python取整:int()、整除”//”
    • int()
      int(-0.5) >>> 0 int(-0.9) >>> 0 int(0.5) >>> 0 int(0.9) >>> 0

      一句话总结:int()函数是“向0取整”,取整方向总是让结果比小数的绝对值更小

    • “//”
      (-1) // 2 # -0.5 >>> -1 (-3) // 2 # -1.5 >>> -2 1 // 2 # 0.5 >>> 0 3 // 2 # 1.5 >>> 1

      一句话总结:“整除”符号运算将结果忠实地向下取整,与math.floor()处理结果一样

 

总结一下:

  1. 向上取整:math.ceil()
  2. 向下取整:math.floor()、整除”//”
  3. 四舍五入:round()——奇数向远离0取整,偶数去尾取整;或言之:奇数进位,偶数去尾
  4. 向0取整:int()

由于最近在做算法题,许多算法题都要涉及(0-1)/2这类的边界计算,这时候我们想让这个-0.5取整至0,而且想让(4-1)/2的结果1.5取整至1,即正数时向下取整,负数时向上取整,总而言之就是向0取整,这时候我们可以用int()

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/199997.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午11:45
下一篇 2026年3月20日 上午11:45


相关推荐

  • 工程师必备APP抓包技能

    工程师必备APP抓包技能奇技·指南一台上网电脑就能完成APP抓包分析一条龙服务。这是一篇APP抓包分析总结性文章,采用APP模拟器与Web调试代理工具组合玩法。从此APP抓包分析能力变得…

    2022年5月30日
    31
  • mysql读写分离延迟问题_MySQL读写分离后的延迟解决方案

    mysql读写分离延迟问题_MySQL读写分离后的延迟解决方案数据库——MySQL读写分离后的延迟解决方案背景:根据上图可以看到QPS:10.73k,实际上真实的并发大量数据到达的时候,我这里最高的QPS是将近15k.而目前单个数据库分片(实例)4CPU8G内存的配置下,最高的性能是7k的QPS。基于上篇我进行了分库分表是对于性能有很大的提高,分库分表实践和中间件的引申我这里讲解的例子是目前4主8从库(12个实例),以下每个实例都会称为分片。单个分片配置my…

    2022年5月29日
    63
  • 游戏数据实时监控和分析[通俗易懂]

    游戏数据实时监控和分析[通俗易懂]概述为了更好的了解到游戏运行时的状态,对相关的功能和数据进行分析是很重要的,设计了本系统。现有的游戏数据大部分采用的是文本输出,备份,然后离线数据分析的方式,不能实时的监控的游戏的状态.相关技术:1:产生日志服务器采用c++实现2:日志监控服务器采用Java实现3:采用hadloop分布式架构.为应付大规模数据和实时的要求,尽快对数据进行分析4:存储日志采用mo

    2022年5月12日
    45
  • 两个经纬度之间的距离计算公式excel_excel经纬度坐标计算距离

    两个经纬度之间的距离计算公式excel_excel经纬度坐标计算距离已知AB列分别为起点经纬度,CD列分别终点经纬度,根据两点经纬度计算距离在E2单元格里输入:=6371004*ACOS(1-(POWER((SIN((90-B2)*PI()/180)COS(A2PI()/180)-SIN((90-D2)*PI()/180)COS(C2PI()/180)),2)+POWER((SIN((90-B2)*PI()/180)SIN(A2PI()/180)-SIN((90-D2)*PI()/180)SIN(C2PI()/180)),2)+POWER((COS((90-B2)*P

    2026年2月24日
    6
  • Postman工具_postman安装使用教程

    Postman工具_postman安装使用教程postman是一款支持http协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易用性好。无论是开发人员进行接口调试,还是测试人员做接口测试,postman都是我们的首选工具之一。那么接下来就介绍下postman到底有哪些功能,它们分别都能干些什么。下面先通过一张图来直观的来看下postman中所包含的功能。图片当然,以上功能也只是展示了postman的一部分功能,为了能更加全面的体现这款工具的特点,我将从以下三个维度来加以说明。它们分别是: 基础功能

    2025年12月1日
    9
  • 好用的在线 java 编译网站,编辑器(亲测)

    好用的在线 java 编译网站,编辑器(亲测)在网上搜了不少在线编译网站,国内外都有。对于java来说,我感觉好用的是这个: 1. https://www.jdoodle.com/online-java-compiler这个支持Java10,并且能够保存代码,还支持导入外部库。但有时候国内登不上,真不明白这个学习网站也封。 2. https://www.tutorialspoint.com/compile_java…

    2022年7月8日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号