本篇文章,想聊一下Python中的round()方法。

这时候,有人就会说,round()方法嘛!简单!round() 方法就是返回浮点数x的四舍五入值。

你看下面这些例子:

round(100.123,1)

round(-100.1)

round(80.23456,3)

round(1.75,1)

上面的运行结果:

100.1

-100

80.235

1.8

一切正常,返回浮点数的四舍五入呀。

那么你再看下面的例子:

round(1.25,1)

round(1.65,1)

运行结果:

1.2

1.6

大家可以试试看!!

嗯??为啥不是1.3和1.7嘞?不是四舍五入的吗?且听我分析~~

在python2中,round()方法确实是 “四舍” ,却不是 “五入”。如果两端一样远,也就是碰到 “5” 时,则保留距离0远的一边。大于 “5” 的数,才 “入”。

而在python3中,round()方法也是 “四舍”,如果两端一样远,会保留到偶数一边。大于 “5” 的数才“入”。这也就是为什么上面的例子是1.2和1.6了。(本人在Python3中运行的)

原来如此,round()方法还分情况讨论的呀

这就完了吗?并没有!再看下面的例子:

round(2.675,2)

运行结果:

2.67

到这儿,小伙伴们就纳闷了,为啥?

无论在Python2中还是Python3中,得到的结果都应该是 “2.68”,可这里的结果为什么是 “2.67”?

莫慌~~

在机器中浮点数不一定能精确表达,机器做出了截断处理。那么在机器中保存的2.675这个数字就比实际数字要小那么一点点。这一点点就导致了它离2.67要更近一点点,所以保留两位小数时就近似到了2.67。

不好理解?看下图:

Decimal类型可以非常精确地在计算机中存储,我们导入该模块,查看“2.675”

在存储时,确实小那么一点点,所以保留两位小数时,成了“2.67”。

总结

看来,round()方法并不只是简单的四舍五入,不仅要分Python2和Python3讨论,还要看数字在计算机中的存储!!确实值得好好研究。

round在python是什么意思_细说python中的round()方法相关推荐

  1. python 人数取整_避免PYTHON取整四舍六入五成双问题

    python中关于round函数的小坑 - _小苹果 - 博客园​www.cnblogs.com 同样的坑:整数a/100 不等于a×0.01 在python2.7的doc中,round()的最后写着 ...

  2. python大牛 关东升_《Python从小白到大牛》第4章 Python语法基础

    本章主要为大家介绍Python的一些语法,其中包括标识符.关键字.常量.变量.表达式.语句.注释.模块和包等内容. 标识符和关键字 任何一种计算机语言都离不开标识符和关键字,因此下面将详细介绍Pyth ...

  3. python实现网络监控_使用python进行服务器监控

    使用python进行服务器监控 Linux服务器中,一切皆为文件.也就是说服务器运行的各种信息,其实是可以从某些文件中查询得到: Linux系统中,有一个/proc的虚拟文件系统 Linux 系统为管 ...

  4. python 打印数组变量_使用Python将数组的元素导出到变量中(unpacking)

    下面就为大家分享一篇使用Python将数组的元素导出到变量中(unpacking),具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 最近工作中遇到一个问题,需要利用Python将数组(list ...

  5. python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议

    <Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  <Python之禅>中对于Pyt ...

  6. python时间序列因果检验_用python做时间序列预测八:Granger causality test(格兰杰因果检验)...

    如果想知道一个序列是否对预测另一个序列有用,可以用Granger causality test(格兰杰因果检验). Granger causality test的思想 如果使用时间序列X和Y的历史值来 ...

  7. python画交互式地图_使用Python构建交互式地图-入门指南

    python画交互式地图 Welcome to The Beginner's Guide to Building Interactive Maps in Python 欢迎使用Python构建交互式地 ...

  8. python出现的意义_[转]Python中下划线以及命名空间的意义

    Python 用下划线作为变量前缀和后缀指定特殊变量/方法. 主要存在四种情形 1. 1. object # public 2. __object__ # special, python system ...

  9. python剪辑视频 裁剪_用python进行视频剪辑

    一.目标 python,利用moviepy和pydub将一段视频进行区间切割 二.源码 import os from moviepy.video.io.VideoFileClip import Vid ...

最新文章

  1. LeetCode 2. Add Two Numbers--C++,Python解法--面试算法题
  2. 如何批量给数字前面加半角单引号[转]
  3. 网易青果后端系统设计窥探(含直播方案踩坑往事)
  4. SAP UI5 Fiori startup service
  5. 计算机考研英语词汇书,考研英语词汇参考书推荐
  6. 复杂sql 查询编写方法_学习SQL:如何编写复杂的SELECT查询
  7. 变成“砖”?旧款 Kindle 因 3G 消失将无法联网
  8. 细数微软 Teams 的 14 宗“罪”!
  9. 重庆文件服务器,重庆filecoin服务器
  10. UI设计中常见的各种布局有哪些?|优漫动游
  11. ActivityManager解析及使用
  12. .大道至简之二:如何准确把握趋势
  13. 华为2017年营收突破6000亿;阿里巴巴全球总经理离职;亚马逊将关闭音乐存储服务丨价值早报
  14. 《莎士比亚》文本生成
  15. Unity FairyGUI(十二)
  16. 特斯拉在中国凭什么翻身?自研芯片还是自动驾驶?
  17. canvas 贝萨尔曲线
  18. landsat8 Collection 1和Collection 2若干问题详细整理
  19. java百度上传控件_百度Bos上传文件工具类-BosUtils(java)
  20. oracle 基本语法大全

热门文章

  1. esp32 cam 配网 实现视频传输
  2. 最近一百年,全球涌现过哪些最顶尖的、最赚钱的公司?
  3. C#设计模式之代理模式(一)
  4. online-section1-new
  5. 北斗/GPS如何实现定位
  6. 百度谷歌等各大搜索引擎网站收录提交入口
  7. 证书详解及使用openssl生成自签证书与SAN多域名证书
  8. DS18B20数字温度传感器
  9. LC滤波器设计学习笔记(一)滤波电路入门
  10. javascript es6常用语法