国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > python里保留小数时5为什么舍去

python里保留小数时5为什么舍去

python四舍五入

头像

流芳

2020-07-08 09:45:023436浏览 · 0收藏 · 0评论

python里保留小数时5舍去的原因是:round函数在遇到“.5”的情况时,如果要取舍的位数前的小数是奇数,则直接舍弃,如果是偶数则向上取舍。

round( )函数简介

菜鸟教程中介绍到,round() 函数作用就是,返回浮点数x的四舍五入值。

> round( x [, n] )

参数x,n均为数值表达式,返回值为x的四舍五入值。n为保留的小数位数,不加n则只保留x四舍五入后的整数部分。

>>> round(2.3)
2
>>> round(2.45, 1)
2.5

特殊情况

上面的结果并没有错误,这里再用2.675测试一下:

>>> round(2.675, 2)
2.67

显然结果不符合四舍五入的规则。为什么会这样呢?原因是:round()函数只有一个参数,不指定位数的时候,返回一个整数,而且是最靠近的整数,类似于四舍五入,当指定取舍的小数点位数的时候,一般情况也是使用四舍五入的规则,但是碰到.5的情况时,如果要取舍的位数前的小数是奇数,则直接舍弃,如果是偶数则向上取舍。

小数位的四舍五入在项目中经常用到,今天群里有人提出1.325 如何才能变成1.33?

当时我一看这么简单,分秒就可以解决:

我回复是这样的的

round(1.315,2)

有个小伙伴 当时就回复:

他要的结果是 1.32, 你打印出是1.31,我看到我想怎么可能呢,我自己运行下,

结果真是1.31 .

我想都没有想,自认为我是对的,好吧,怪不得开发不能测试自己的代码.

我就开始查找原因,我们通过代码进行讲解:

print(Decimal(1.325))

打印结果:

1.3249999999999999555910790149937383830547332763671875

大家看到了吗? 实际1.325用二进制转化的是有精度损失.部分小数无法完全用二进制表示.
这是根本所在.

那有的同学该说了,为什么 有的五能进1 能解释下原理吗?
原理和上边的一样,我举个例子 5可以进1

print(round(1.145,2))
#打印结果
1.15

继续查看二进制保存的值:

print(Decimal(1.145))
#打印结果
1.145000000000000017763568394002504646778106689453125

大家明白了吧 ,round 本身没有问题,而是二进制保存的值有点误差导致的.

推荐课程:机器学习边学变练(黑马程序员)

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

一个鸡蛋的热量是多少大卡| 高清国产少女免费观看电视剧| 偷偷在线观看免费的电视剧最新| 欧美一区| 异性SPA按摩| 床3| 美女和帅哥一起努力生产豆浆的视..| 姐姐动漫在线观看动浸第8集 | 美国大片又大又好看的PPT| 三男一女CP免费观看电视剧大全 | 在线视频| 小妇人在线观看免费版电视剧| 水K制服| 超短裙老师的好小好紧| 欧美片《肉欲进入》| 恋爱之瘾台湾剧| PRONHUB| 入室強暴強焱人妻HD| 电影《满足2》完整版在线观看| 兄弟的老婆4免费观看电视剧 | 做爰高潮A片(毛片)| 拔小萝卜免费观看全集电视剧| 《与上司做爰HD》| 电影免费观看高清完整版在线观看| 女被扒开腿狂躁xXXXX| 双男主做酱酱酿酿视频大全真人版| 久久久久久精品国产三级涨奶| 伦理《少妇的滋味》完整版| 男人把因因放到女人因困里视频| 泰剧《劈开你的腿》免费观看| 强多干伦久久久久久久久| 69精品久久久久久久精品A片| 9.1萝卜黄| 欧美日韩精品| 美女两个球球抖动抓球球视频| 《哺乳》电影完整版观看| 《好好疼爱里面》免费看| 张柏芝门户大开照| EXO妈妈MV高清在线观看| 妈妈可以帮儿子解决心理需要| 为什么妓女磨两下就很多水