python如何实现向上取整

 更新时间:2023年01月31日 17:01:03   作者:普通网友  
这篇文章主要介绍了python如何实现向上取整问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

python如何取整

数据处理是编程中不可避免的,很多时候都需要根据需求把获取到的数据进行处理,取整则是最基本的数据处理。

取整的方式则包括向下取整、四舍五入、向上取整等等。

1、向下取整

向下取整直接用内建的 int() 函数即可:

>>> a = 3.75
>>> int(a)
3

2、四舍五入

对数字进行四舍五入用 round() 函数:

>>> round(3.25); round(4.85)
3.0
5.0

3、向上取整

向上取整需要用到 math 模块中的 ceil() 方法:

>>> import math
>>> math.ceil(3.25)
4.0
>>> math.ceil(3.75)
4.0
>>> math.ceil(4.85)
5.0

4、分别取整数部分和小数部分

有时候我们可能需要分别获取整数部分和小数部分,这时可以用 math 模块中的 modf() 方法,该方法返回一个包含小数部分和整数部分的元组:

>>> import math
>>> math.modf(3.25)
(0.25, 3.0)
>>> math.modf(3.75)
(0.75, 3.0)
>>> math.modf(4.2)
(0.20000000000000018, 4.0)

有人可能会对最后一个输出结果感到诧异,按理说它应该返回 (0.2, 4.0) 才对。

这里涉及到了另一个问题,即浮点数在计算机中的表示,在计算机中是无法精确的表示小数的,至少目前的计算机做不到这一点。

上例中最后的输出结果只是 0.2 在计算中的近似表示。

python中的取整问题

虽然取整是各种语言中最基础的操作, 可是往往多了一个1或者少了一个1会导致巨大的灾难,所以我觉得还是很有必要写一下的。

python中的取整操作有://, round, int, ceil, floor, 其他语言也有类似的函数来进行取整。

先看一段代码

import math

def test_round(a, b):
    print('-------------------------------------')
    print(f'{a}/{b}=', a/b)
    print(f'{a}//{b}=', a//b)
    print(f'round({a}/{b})=', round(a/b))
    print(f'int({a}/{b})=', int(a/b))
    print(f'ceil({a}/{b})=', math.ceil(a/b))
    print(f'floor({a}/{b})=', math.floor(a/b))

test_round(3, 2)
test_round(-3, 2)

打印结果:

-------------------------------------
3/2= 1.5
3//2= 1
round(3/2)= 2
int(3/2)= 1
ceil(3/2)= 2
floor(3/2)= 1
-------------------------------------
-3/2= -1.5
-3//2= -2
round(-3/2)= -2
int(-3/2)= -1
ceil(-3/2)= -1
floor(-3/2)= -2

可以看出, //操作结果和floor是一样的。

总的来说, ceil:坐标轴上向上取整, floor:向下取整, int:向中(0)取整(直接去掉浮点位)。

而round则是四舍五入(不考虑符号)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python使用opencv进行人脸识别

    python使用opencv进行人脸识别

    本文主要介绍了python使用opencv进行人脸识别的相关资料。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • Flask框架web开发之零基础入门

    Flask框架web开发之零基础入门

    这篇文章主要介绍了Flask框架web开发之零基础入门,简单的介绍了如何使用及其数据库集成,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • python+requests+pytest接口自动化的实现示例

    python+requests+pytest接口自动化的实现示例

    这篇文章主要介绍了python+requests+pytest接口自动化的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • flask框架配置mysql数据库操作详解

    flask框架配置mysql数据库操作详解

    这篇文章主要介绍了flask框架配置mysql数据库操作,结合实例形式详细分析了flask框架配置mysql数据库及连接访问等相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题

    Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题

    这篇文章主要介绍了Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-07-07
  • 如何基于python实现年会抽奖工具

    如何基于python实现年会抽奖工具

    这篇文章主要介绍了如何基于python实现年会抽奖工具,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Python 内置变量和函数的查看及说明介绍

    Python 内置变量和函数的查看及说明介绍

    今天小编就为大家分享一篇Python 内置变量和函数的查看及说明介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • PyQt5学习之QThread类的使用详解

    PyQt5学习之QThread类的使用详解

    QThread是Qt线程类中最核心的底层类。要使用QThrea开始一个线程,可以创建它的一个子类,然后覆盖其QThread.run()函数。这篇文章就来和大家聊聊QThread类的使用,感兴趣的可以学习一下
    2022-12-12
  • python数字图像处理像素的访问与裁剪示例

    python数字图像处理像素的访问与裁剪示例

    这篇文章主要为大家介绍了python数字图像处理像素的访问与裁剪示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Python3实现从排序数组中删除重复项算法分析

    Python3实现从排序数组中删除重复项算法分析

    这篇文章主要介绍了Python3实现从排序数组中删除重复项算法,结合3个完整实例形式分析了Python3针对排序数组的遍历、去重、长度计算等相关操作技巧,需要的朋友可以参考下
    2019-04-04

最新评论