手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

python中round的用法,python四舍五入的坑

时间:2024-10-13 22:45:03

1、构成round( x [, n] )参数:x : 必填,数值表达式;[, n] : 可选,需要保留的小数位数,默认为0,即默认保留整数位。

2、简单的来看一下用法round(10/3) #默认保留整数部分,结果为3;round(10/3, 2) #默认保留2位小数,结果为3.3;round(10.676, 2) #默认保留2位小数,结果为10.68。

python中round的用法,python四舍五入的坑

3、但是直接使用round()时,会遇到一些问题,如下:round(2.675, 2)#正确值应该是2.68,但这里实际返回的是2.67;round(2.6754, 2)#返回2.68,正确;

python中round的用法,python四舍五入的坑

4、所以在处理数据的时候,可能会发生一些,我们不能来理解的情况,如:0.10 + 0.20 # 返回 0.30000000000000004。这是因为python存储值的时候,是以近似值存储的,在第三位为“0.005”的时候,实际储存的是“0.004999999999”,所以自动舍去了。有人提出了“奇进偶舍”的概念,但是python3.8实测并不满足,后面提供2种解决办法。

python中round的用法,python四舍五入的坑

5、方法一 decimal方法:import decimal as dc # 导入"decim锾攒揉敫al"模块,并命名为"dc";from decimal import Decimal as Dc# 导入"decimal"模块中"Decimal"方法,并命名为"Dc";传入的值需要为字符串:Dc('2.685').quantize(Dc('0.00'), rounding=dc.ROUND_HALF_UP)Dc('2.635').quantize(Dc('0.00'), rounding=dc.ROUND_HALF_UP)Dc('2.685'):为传入的值;.quantize(Dc('0.00'), rounding=dc.ROUND_HALF_UP)中:Dc('0.00'):为需要保留的小数位;rounding=dc.ROUND_HALF_UP:为设定为四舍五入。可以看到我们传入的值都可以正常处理了。

python中round的用法,python四舍五入的坑

6、方法二 int方法:也可以根据int方法直接舍去小数点后数值的特性,我们如果要保留2位小数,就先对数值*100,保留3位就*1000,以此类推,最后再将倍数除掉,来达到四舍五入的目的:int(2.685*100+0.5)/100 # 返回2.69;int(2.635*100+0.5)/100# 返回2.64;这也是笔者经常使用的方法。

python中round的用法,python四舍五入的坑
© 手抄报圈