python随笔:round函数的使用
round函数是一个用于四舍五入的函数;
其基本语法格式为:round(number,digits);
其中number是需要四舍五入的数,digits是需要小数点后保留的位数;
(1)如果 digits 大于 0,则四舍五入到指定的小数位;
(2)如果 digits 等于 0,则四舍五入到最接近的整数;
(3)如果 digits 小于 0,则在小数点左侧进行四舍五入;
digits的值在默认情况下为0.
例如以下代码:
print("round(123.456789,3)的值为:",round(123.456,2))
print("round(123.456789,-3)的值为:",round(123.456,-2))
print("round(123.456789,0)的值为:",round(123.456,0))
代码运行结果如下:
round(123.456789,3)的值为: 123.46
round(123.456789,-3)的值为: 100.0
round(123.456789,0)的值为: 123.0
浮点数间运算常用到round函数,因为浮点数之间运算存在不确定尾数(这不是bug,因为浮点数对应的是一个无限循环的二进制数,而计算机在运算时只截取其前面的一部分二进制数,所以部分浮点数之间运算存在着不确定尾数,此时用round函数可以很好地解决这个问题)
但是round函数在使用时有一个缺陷,这个缺陷是由版本不同造成的。
比如同样是round(0.5)这段代码,python 2给出的结果是1.0,而python 3给出的结果是0.下面给出具体原因:
在python 2中给出的语法是保留值将保留到离上一位更近的一端(四舍六入),如果距离两端一样远,则保留到离0远的一边。所以round(0.5)会近似到1,而round(-0.5)会近似到-1;
在python 3中给出的语法是如果距离两边一样远,会保留到偶数的一边。比如round(0.5)和round(-0.5)都会保留到0,而round(1.5)会保留到2。
同时在使用round函数还有另一个缺陷:
如round(2.675,2)的结果。不论我们从python2还是3来看,结果都应该是2.68的,结果它偏偏是2.67,为什么?这跟浮点数的精度有关。我们知道在机器中浮点数不一定能精确表达,因为换算成一串1和0后可能是无限位数的,机器已经做出了截断处理。那么在机器中保存的2.675这个数字就比实际数字要小那么一点点。这一点点就导致了它离2.67要更近一点点,所以保留两位小数时就近似到了2.67。
所以除非对精确度没什么要求,否则尽量避开用round()函数。近似计算我们还有其他的选择:
(1)使用math模块中的一些函数,比如math.ceiling(天花板除法)。(2)python自带整除,python2中是/,3中是//,还有div函数。
(3)字符串格式化可以做截断使用,例如 “%.2f” % value(保留两位小数并变成字符串)。
python随笔:round函数的使用相关推荐
- python中round函数的精度保留方法---四舍六入五成双
当我们利用python进行数据计算时,通常会对浮点数保留相应的位数,这时候就会用到round函数,相信各位朋友在进行使用时会遇到各种问题,关于round函数保留精度.保留方法的问题,本文会进行详细的解 ...
- python中round函数参数_python中关于round函数的小坑
round函数很简单,对浮点数进行近似取值,保留几位小数.比如 >>> round(10.0/3, 2) 3.33 >>> round(20/7) 3 第一个参数是 ...
- python中round函数参数有负数_Python中round函数使用注意事项
使用round函数的时候发现了一个奇怪的现象.一直觉得round函数是一个用于四舍五入的函数,结果却不一定.一般如果觉得奇怪,那就是没弄懂其本质的运作原理,所以深入了解了下round函数. Pytho ...
- python中round函数的使用方法
python中使用的语法是round(number,digits) number,要四舍五入的数,digits是要小数点后保留的位数 如果 digits 大于 0,则四舍五入到指定的小数位 如果 di ...
- python的round函数使用
碰到的问题: 对float进行精确两位显示出来. 解决的方法:round(3.32342,2) #3.32 . round函数概念: 英文:圆,四舍五入 是python内置函数,它在哪都能用,对数 ...
- python round_Python round() 函数
round() 方法返回浮点数x的四舍五入值. 以下是 round() 方法的语法: round( x [, n] ) x为浮点数,n为保留的小数点位. 以下展示了使用 round() 方法的实例: ...
- python中round作用,python的round函数的解释
0x01 round的疑问 简单测试round函数,有些情况会让你很疑惑. 为啥四舍五入有时候不起作用, 这涉及到的底层浮点数保存的问题.学习过逆向或者汇编的话, 都知道浮点数的精度问题. 0x02 ...
- 【详解python中round函数】
在Python中,round()函数是一个内置函数,用于将一个数字四舍五入为指定的小数位数或整数位数. round()函数有两个参数:第一个参数是要四舍五入的数字,第二个参数(可选)是小数位数或整数位 ...
- python中round函数_round函数
Python内置的round函数,用来取小数点后N位,还是很方便的.但是要注意,round函数执行的不是四舍五入.请参考:Python实现四舍五入的方法. 看代码吧,要注意round函数在去小数点后N ...
- 【问题解决】python中round()函数并非四舍五入
对于python中的round()函数,我们简单的认为是四舍五入,其实不然 对于偶数 >>> round(4.5) 4 对于奇数 >>> round(5.5) 6 ...
最新文章
- python基础之ATM-9
- mongodb java crud_MongoDB用Java,简单的CRUD操作,两种方法,附源码下载。
- 移动互联网下一步:“深度学习”配合大数据
- 软考网络规划设计师备考及通过心得
- javaweb(02) JavaScript基础知识
- python训练聊天机器人词库_Python实现聊天机器人的示例代码
- LANP+KEEPALIVED集群(二)
- 察举科目-汉代察举制度的重要环节
- html+盒子+边距,盒子模型、边框、边距
- day18私有化、关联、继承
- 百度网盘PC端登录安全验证显示空白页
- Sentry 开发者贡献指南 - SDK 开发(性能监控)
- 百万点赞怎么来?用 Python 制作抖音视频原来这么简单
- Net分布式系统之七:日志采集系统(1)
- 是时候,给你们自由了
- apollo github的说明介绍
- linux c语言 打开文件,linux c打开文件的方法
- 行业认证标准:PCI DSS - 支付卡行业数据安全标准
- matlab 里定义全局变量,常量
- GIS技术在石油工业中有哪些应用?
热门文章
- matlab的死区环节,基于SIMULINK对非线性系统死区环节进行仿真
- 斑马打印机打印不出来字怎么解决
- 2021中国大数据企业50强
- libtorch opecv c++ cmake clion
- 微信小程序--红色星球
- 使用rimraf一秒删除node_modules文件夹【亲测有用】
- HLS 开发学习(五) 稀疏矩阵向量乘法
- 手把手教你使用wordpress搭建个人网站
- [转载]js技巧收集(200多个)
- Faceboxes pytorch代码解读(一) box_utils.py(上篇)