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函数的使用相关推荐

  1. python中round函数的精度保留方法---四舍六入五成双

    当我们利用python进行数据计算时,通常会对浮点数保留相应的位数,这时候就会用到round函数,相信各位朋友在进行使用时会遇到各种问题,关于round函数保留精度.保留方法的问题,本文会进行详细的解 ...

  2. python中round函数参数_python中关于round函数的小坑

    round函数很简单,对浮点数进行近似取值,保留几位小数.比如 >>> round(10.0/3, 2) 3.33 >>> round(20/7) 3 第一个参数是 ...

  3. python中round函数参数有负数_Python中round函数使用注意事项

    使用round函数的时候发现了一个奇怪的现象.一直觉得round函数是一个用于四舍五入的函数,结果却不一定.一般如果觉得奇怪,那就是没弄懂其本质的运作原理,所以深入了解了下round函数. Pytho ...

  4. python中round函数的使用方法

    python中使用的语法是round(number,digits) number,要四舍五入的数,digits是要小数点后保留的位数 如果 digits 大于 0,则四舍五入到指定的小数位 如果 di ...

  5. python的round函数使用

    碰到的问题: 对float进行精确两位显示出来. 解决的方法:round(3.32342,2)  #3.32  . round函数概念: 英文:圆,四舍五入 是python内置函数,它在哪都能用,对数 ...

  6. python round_Python round() 函数

    round() 方法返回浮点数x的四舍五入值. 以下是 round() 方法的语法: round( x [, n] ) x为浮点数,n为保留的小数点位. 以下展示了使用 round() 方法的实例: ...

  7. python中round作用,python的round函数的解释

    0x01 round的疑问 简单测试round函数,有些情况会让你很疑惑. 为啥四舍五入有时候不起作用, 这涉及到的底层浮点数保存的问题.学习过逆向或者汇编的话, 都知道浮点数的精度问题. 0x02 ...

  8. 【详解python中round函数】

    在Python中,round()函数是一个内置函数,用于将一个数字四舍五入为指定的小数位数或整数位数. round()函数有两个参数:第一个参数是要四舍五入的数字,第二个参数(可选)是小数位数或整数位 ...

  9. python中round函数_round函数

    Python内置的round函数,用来取小数点后N位,还是很方便的.但是要注意,round函数执行的不是四舍五入.请参考:Python实现四舍五入的方法. 看代码吧,要注意round函数在去小数点后N ...

  10. 【问题解决】python中round()函数并非四舍五入

    对于python中的round()函数,我们简单的认为是四舍五入,其实不然 对于偶数 >>> round(4.5) 4 对于奇数 >>> round(5.5) 6 ...

最新文章

  1. python基础之ATM-9
  2. mongodb java crud_MongoDB用Java,简单的CRUD操作,两种方法,附源码下载。
  3. 移动互联网下一步:“深度学习”配合大数据
  4. 软考网络规划设计师备考及通过心得
  5. javaweb(02) JavaScript基础知识
  6. python训练聊天机器人词库_Python实现聊天机器人的示例代码
  7. LANP+KEEPALIVED集群(二)
  8. 察举科目-汉代察举制度的重要环节
  9. html+盒子+边距,盒子模型、边框、边距
  10. day18私有化、关联、继承
  11. 百度网盘PC端登录安全验证显示空白页
  12. Sentry 开发者贡献指南 - SDK 开发(性能监控)
  13. 百万点赞怎么来?用 Python 制作抖音视频原来这么简单
  14. Net分布式系统之七:日志采集系统(1)
  15. 是时候,给你们自由了
  16. apollo github的说明介绍
  17. linux c语言 打开文件,linux c打开文件的方法
  18. 行业认证标准:PCI DSS - 支付卡行业数据安全标准
  19. matlab 里定义全局变量,常量
  20. GIS技术在石油工业中有哪些应用?

热门文章

  1. matlab的死区环节,基于SIMULINK对非线性系统死区环节进行仿真
  2. 斑马打印机打印不出来字怎么解决
  3. 2021中国大数据企业50强
  4. libtorch opecv c++ cmake clion
  5. 微信小程序--红色星球
  6. 使用rimraf一秒删除node_modules文件夹【亲测有用】
  7. HLS 开发学习(五) 稀疏矩阵向量乘法
  8. 手把手教你使用wordpress搭建个人网站
  9. [转载]js技巧收集(200多个)
  10. Faceboxes pytorch代码解读(一) box_utils.py(上篇)