当前位置:   article > 正文

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

按0.5取整

废话少叙,直接上code:

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

  • 向上取整:math.ceil()
  1. import math
  2. math.ceil(-0.5)
  3. >>> 0
  4. math.ceil(-0.9)
  5. >>> 0
  6. math.ceil(0.3)
  7. >>> 1

如code所见,math.ceil()严格遵循向上取整,所有小数都是向着数值更大的方向取整,不论正负数都如此

  • 四舍五入:round()
  1. round(-2.5)
  2. >>> -2
  3. round(-1.5)
  4. >>> -2
  5. round(-0.5)
  6. >>> 0
  7. round(0.5)
  8. >>> 1
  9. round(1.5)
  10. >>> 2
  11. round(2.5)
  12. >>> 2

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

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

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

  • 两个有趣且特殊的Python取整:int()、整除"//"
  • int()
  1. int(-0.5)
  2. >>> 0
  3. int(-0.9)
  4. >>> 0
  5. int(0.5)
  6. >>> 0
  7. int(0.9)
  8. >>> 0

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

  • "//"
  1. (-1) // 2 # -0.5
  2. >>> -1
  3. (-3) // 2 # -1.5
  4. >>> -2
  5. 1 // 2 # 0.5
  6. >>> 0
  7. 3 // 2 # 1.5
  8. >>> 1

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

 

总结一下:

向上取整:math.ceil()
向下取整:math.floor()、整除"//"
四舍五入:round()——奇数向远离0取整,偶数去尾取整;或言之:奇数进位,偶数去尾
向0取整:int()
由于最近在做算法题,许多算法题都要涉及(0-1)/2这类的边界计算,这时候我们想让这个-0.5取整至0,而且想让(4-1)/2的结果1.5取整至1,即正数时向下取整,负数时向上取整,总而言之就是向0取整,这时候我们可以用int()
————————————————
版权声明:本文为CSDN博主「illusion_小驴」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41712499/article/details/85208928

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/378707
推荐阅读
相关标签
  

闽ICP备14008679号