文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python如何实现向上取整

2023-01-31 18:01

关注

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则是四舍五入(不考虑符号)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯