首页 > 编程语言 >Python 中的round函数

Python 中的round函数

时间:2023-10-10 11:04:50浏览次数:34  
标签:digits 四舍五入 函数 Python 保留 0.5 位数 round

在python2.7的doc中,round()的最后写着,

"Values are rounded to the closest multiple of 10 to the power minus ndigits; if two multiples are equally close, rounding is done away from 0." 

保留值将保留到离上一位更近的一端(四舍六入),如果距离两端一样远,则保留到离0远的一边。所以round(0.5)会近似到1,而round(-0.5)会近似到-1。

但是到了python3.5的doc中,文档变成了

"values are rounded to the closest multiple of 10 to the power minus ndigits; if two multiples are equally close, rounding is done toward the even choice." 

如果距离两边一样远,会保留到偶数的一边。比如round(0.5)和round(-0.5)都会保留到0,而round(1.5)会保留到2。

 

Python 2.7 中的结果如下:

>>> round(-0.5)
-1.0
>>> round(0.5)
1.0
>>> round(1.5)
2.0
>>> round(2.5)
3.0
>>> round(3.5)
4.0
>>> round(4.5)
5.0
>>> round(6.5)
7.0

 

Python 3.8 中的结果如下:

round(-0.5)
0
round(0.5)
0
round(1.5)
2
round(2.5)
2
round(3.5)
4
round(4.5)
4
round(5.5)
6
round(6.5)
6

 

===================================

round(number, digits)
参数:
    digits>0,四舍五入到指定的小数位
    digits=0, 四舍五入到最接近的整数
    digits<0 ,在小数点左侧进行四舍五入
    如果round()函数只有number这个参数,等同于digits=0

四舍五入规则:
    要求保留位数的后一位<=4,则不进位,如 round(5.214, 2)   保留小数点后两位,结果是 5.21
    要求保留位数的后一位“=5”,且该位数后面没有数字,向偶数靠拢,如 round(5.215, 2),结果为5.21
    要求保留位数的后一位“=5”,且该位数后面有数字,则进位,如 round(5.2151, 2),结果为5.22
    要求保留位数的后一位“>=6”,则进位。如  round(5.216, 2),结果为5.22

参考链接:

 

=================================

>>> [round(x+0.555,2) for x in range(0,15)]
[0.56, 1.56, 2.56, 3.56, 4.55, 5.55, 6.55, 7.55, 8.55, 9.55, 10.55, 11.55, 12.55, 13.55, 14.55]
>>> round(1.555,2)
1.55

=================================

 



标签:digits,四舍五入,函数,Python,保留,0.5,位数,round
From: https://blog.51cto.com/emanlee/7789325

相关文章

  • Python文件类型
    1.文件分类   源代码:文件以py为扩展名,由python程序解释,不需要编译;   *.pyc,py源文件编译成的二进制字节码文件,依然由python加载执行,不过速度会提高,也会隐藏源码;   *.pyo,优化编译后的程序,也是二进制文件,适用于嵌入式系统。2pyc和pyo文件生成   生成pyc文件:   ......
  • python 折行 代码换行
    非常长的字符串换行 ##三个双引号line="""thisisaveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongstring"""line##三个单引号longstring1='''thisisalonglonglonglonglonglonglong......
  • 《流畅的Python》高清高质量电子书PDF+源代码
    下载:https://pan.quark.cn/s/02b9697a37d0......
  • Educational Codeforces Round 152 (Div. 2) D. Array Painting(双指针)
    EducationalCodeforcesRound152(Div.2)D.ArrayPainting//思路:双指针找连续正数段//若段中出现2,则更新两头的0的情况,若为涂色则改为true//若无2,则优先更新左侧0,若左0已经为true,则更新右侧0//数组开头结尾特判#defineintlonglong#defineldlongdoubleusingnam......
  • oracle中to_char(), to_date() ,ROUND(),NVL(), DECODE(), EXTRACT()等函数的使用
    1.to_char()将时间日期按照指定的格式输出,得到的是字符串,而非date类型。只要被转换的是一个日期,yyyy,mm,dd中间加不加连接符,加什么连接符都可以2.todate()将字符串按照指定的格式输出,得到的是日期类型。第一个参数的yyyy,mm,dd之间有没有连接符。如果有,那么第二个参数必须有......
  • lambda 函数
     概念介绍:匿名函数:是指一类无需定义标识符(函数名)的函数或子程序 关键字lambda表示匿名函数,冒号前面的n表示函数参数,可以有多个参数。匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突......
  • 标量衍射计算不完全指南(python 实现)
    标量衍射计算不完全指南(python实现)Introduction本文的目的总结一些标量衍射的计算方法,并讨论讨论他们的适用条件。代码和例子在:https://github.com/zhemglee/Scalardiffraction需要的预备知识:涉及的数理知识并不高深,主要是线性系统和傅里叶变换(离散傅里叶变换)的基础知识,当然还......
  • python多线程
    importdatetimeimportthreadingfromtimeimportsleep#创建一个信号量,限制最多同时运行2个线程semaphore=threading.Semaphore(2)#创建一个线程锁threadLock=threading.Lock()defworker(i):withsemaphore:current_datetime=datetime.datet......
  • 练习记录-cf-Educational Codeforces Round 156 (Rated for Div. 2)(A-C)
    好久没打了还是就出了三道不过还好没掉分A.SumofThree就是问能不能把一个数拆成三个不同的且都不能被三整除的数我的思路就是拆成1+2+一个大于等于4的数如果拆了后另一个数是%3==0那么我拆成1+4它肯定就不被整除然后判下相同#include<bits/stdc++.h>#defineclose......
  • Codeforces Round 902 (Div. 2) C. Joyboard 规律
    CodeforcesRound902(Div.2)C.Joyboard//思路:在k=1,k=2,k=3时有解//当k=1时为全0//当k=2时,若m>=n,则先是0然后为1~n,最后一位可以为n的倍数也符合,即n+m/n-1//若m<n则为1~m即m//当k=3时,只能在n+1位是第3个不同情况(大于n),且不能为n的倍数,即(m-n)-(m/n-1)//只......