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

 时间:2026-02-16 14:17:34

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 # 导入"decimal"模块,并命名为"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四舍五入的坑

  • 十大关系怎么分类
  • 多重障碍儿童安置形式
  • 无线网络安全注意事项
  • 百度脑图怎么设置超链接
  • C4D建模---竹蜻蜓
  • 热门搜索
    国庆节英语手抄报 元宵节手抄报内容资料 我们的节日春节手抄报 创城手抄报 劳动节的手抄报 环保知识手抄报 楹联手抄报 小学生元宵节手抄报 防疫有我爱卫同行手抄报 小手拉大手手抄报