社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python中四舍五入的讲解

做个不一样的小丑 • 4 年前 • 102 次点击  

round()函数

(注意:下面的我也不清楚是否正确,我只是发表一下我的观点)


对于简单的舍入运算,使用内置的 round(value, ndigits) 函数即可

强烈建议不要去深究,就直接得结果就好
ndigiths可以为正数,也可以为负数,还可以为0,可以为空
n:就是精确到第n位小数,对整数没有影响,1为精确到十分位(注意:小数就是从十分位往后推的)
-n:就是精确到整数位,-1为精确到十位,然后就是百位千位…有小数位就全舍掉,不管多大,但会保留一个为0的小数位
0:精确到个位,但会保留一个为0的小数位
为空:精确到个位,没有小数位

其他还好就这个临界点 5 很烦,我自己感觉得啊
就我以前的理解要是将 1.49 精确到个位应该得到的是 2 对吧,是从右往左依次进行四舍五入吧,但python运行结果为1
下面是小数部分的

>>> round(1.49)
1
>>> round(1.5)
2
>>> round(0.5)
0
>>> round(0.51)
1
>>> round(0.051,1)
0.1
>>> round(0.05,1)
0.1
>>> round(0.046,1)
0.0
>>> round(0.25,1)
0.2
>>> round(0.35,1)
0.3
>>> round(0.251,1)
0.3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

这里是整数

>>> round(1235,-1)
1240
>>> round(1245,-1)
1240
>>> round(1234.99,-1)
1230.0
>>> round(1245,-2)
1200
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这是我在网上查的对四舍五入的理解
1、同型算法:四舍六入五成双。这里"四"是小于五的意思,"六"是大于五的意思,"五"是舍入位之后的尾数逢五的话看前一位,奇进偶不进。如1.25保留一位小数,因为2是偶数,所以是1.2。
2、从统计学的角度,"四舍六入五成双"比"四舍五入"要科学,它使舍入后的结果有的变大,有的变小,更平均。而不是像四舍五入那样逢五就入,导致结果偏向大数。
不清python用的是什么标准来进行四舍五入的
我还去网上查了一下Python中对四舍五入的理解:
在Python3中,round函数的取舍方式使用靠近最近和等距靠近偶数(ROUND_HALF_EVEN)策略
不怎么理解,辣鸡了呀
不去想了,再想会把我以前对四舍五入的理解都搞混了,花费我很多时间,还是不懂,害,任它去吧
还是想建议大家就直接使用,不要理解哦,如果你是大佬就当我没说,嘿嘿

format()函数

如果只想在输出时按格式打印,使用format()函数就好了

>>> format(1.45,'0.1f')
'1.4'
>>> format(1.35,'0.1f')
'1.4'
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4
好了就到这了,大家可以去演示演示哦
记得点赞哦
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/106226
 
102 次点击