Python round()函数避坑指南

 更新时间:2026年07月08日 17:23:13   作者:逍遥Fau  
Python的round()函数用法与陷阱揭秘!想知道为什么保留小数时5有时进位有时舍去?本文用Python 3.10.2实测,帮你避开四舍五入的隐藏规则,掌握核心用法与正确规律,点击立即获取round()的完整使用指南

Python的round()函数用法及结果

Python版本信息:

Python 3.10.2 (main, Feb 2 2022, 06:19:27) [Clang 13.0.0 (clang-1300.0.29.3)]

IPython 8.2.0 – An enhanced Interactive Python. Type ‘?’ for help.

输入 help(round)可以得到下列信息:

Help on built-in function round in module builtins:

round(number, ndigits=None)
    Round a number to a given precision in decimal digits.
    
    The return value is an integer if ndigits is omitted or None.  Otherwise
    the return value has the same type as the number.  ndigits may be negative.

说明:上文信息表示round()是python中的一个内置函数, 可以把指定数字进行十进制下的四舍五入. 且可以接受最多两个参数

  • 第一个参数:number 该参数必选, 表示要操作的数字
  • 第二个参数:ndigits 该参数可选, 表示要保留的位数, 为空或等于None时, 则保留为整型.

发现的问题

如果我们要保留小数点后x位, 则当第x + 1位是5的时候, 会产生很神奇的结果:

有时候向上取,有时候又是向下取.

得出结论

最后经过实验, 总结出如下规律:

如果此时要保留ndigitsndigitsndigits位, 而小数点后第ndigits+1ndigits + 1ndigits+1位是555, 则判断小数点后ndigits+2ndigits + 2ndigits+2位是否存在(且不为000). 若存在则进位, 反之则看解释器心情.

例如:

round(5.3351,2)→5.34round(5.3351, 2) \rightarrow 5.34round(5.3351,2)→5.34
round(5.325,2)→5.33,round(5.345,2)→5.34round(5.325, 2) \rightarrow 5.33, round(5.345, 2) \rightarrow 5.34round(5.325,2)→5.33,round(5.345,2)→5.34

我也浏览了其他博客,其他博主有两种错误的理解:

  • 1.看ndigitsndigitsndigits位的奇偶,若偶数进位,反之舍位
  • 2.单纯看是否存在ndigitsndigitsndigits,若存在进位,反之舍位

以上说法是不正确的,均在上图中体现出反例

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

相关文章

  • Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)

    Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)

    由于最近学习tensorflow的需要,tensorflow是在Linux环境下,使用的是Python。为了方便程序的调试,尝试在Windows下的Pycharm远程连接到虚拟机中Centos下的Python环境,感兴趣的朋友跟随小编看看吧
    2020-03-03
  • python数字图像处理之图像自动阈值分割示例

    python数字图像处理之图像自动阈值分割示例

    这篇文章主要为大家介绍了python数字图像处理之图像自动阈值分割示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • pandas dataframe统计填充空值方式

    pandas dataframe统计填充空值方式

    这篇文章主要介绍了pandas dataframe统计填充空值方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 解决pytorch下出现multi-target not supported at的一种可能原因

    解决pytorch下出现multi-target not supported at的一种可能原因

    这篇文章主要介绍了解决pytorch下出现multi-target not supported at的一种可能原因,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Django中的CACHE_BACKEND参数和站点级Cache设置

    Django中的CACHE_BACKEND参数和站点级Cache设置

    这篇文章主要介绍了Django中的CACHE_BACKEND参数和站点级Cache设置,Python是最具人气的Python web框架,需要的朋友可以参考下
    2015-07-07
  • Python网络爬虫的基本原理解析

    Python网络爬虫的基本原理解析

    如果要获取网络上数据,我们要给爬虫一个网址(程序中通常叫URL),爬虫发送一个HTTP请求给目标网页的服务器,服务器返回数据给客户端(也就是我们的爬虫),爬虫再进行数据解析、保存等一系列操作,需要的朋友可以参考下
    2023-05-05
  • python3使用迭代生成器实现减少内存占用

    python3使用迭代生成器实现减少内存占用

    这篇文章主要介绍了python3使用迭代生成器实现减少内存占用的相关资料,需要的朋友可以参考下
    2021-05-05
  • scipy稀疏数组dok_array的具体使用

    scipy稀疏数组dok_array的具体使用

    本文主要介绍了scipy稀疏数组dok_array的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python Web项目部署Gunicorn使用详解

    Python Web项目部署Gunicorn使用详解

    Gunicorn是一个高效的Python WSGI HTTP服务器,专为生产环境设计,它采用pre-fork模型,通过主进程管理多个工作进程,提供稳定性和并发处理能力,本文介绍Python Web项目部署Gunicorn使用详解,感兴趣的朋友跟随小编一起看看吧
    2026-03-03
  • python requests指定出口ip的例子

    python requests指定出口ip的例子

    今天小编就为大家分享一篇python requests指定出口ip的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07

最新评论