You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

round函数未正常取整?均值计算取整结果异常排查

解决均值函数返回错误整数结果的问题

看起来你踩了Python整数除法的坑!咱们先拆解下问题出在哪:

你的代码里,sum / len(lst)这一步在Python 2环境下会执行整数除法——因为sum和len(lst)都是整数,哪怕你之后把结果转成float,除法的结果已经是整数3(13÷4=3),转成float后就是3.0,再round自然得到3.0,而不是你预期的3.25。另外提醒下:尽量别用sum当变量名,会覆盖Python内置的sum()函数,容易引发其他问题。

修正方案

这里有两种简单的解决办法:

1. 提前将其中一个操作数转为浮点数

把除法操作中的总和先转成float,这样除法会得到精确的浮点数结果:

def mean(lst, decimals):
    total = 0
    for item in lst:
        total += item
    mean_value = round(float(total) / len(lst), decimals)
    print(mean_value)

2. 启用Python 3风格的真除法

如果是在Python 2环境下,可以在文件开头加上这行代码,强制让除法行为和Python 3一致(整数相除也会返回浮点数):

from __future__ import division

def mean(lst, decimals):
    total = 0
    for item in lst:
        total += item
    mean_value = round(total / len(lst), decimals)
    print(mean_value)

测试验证

运行修正后的代码,输入mean([5, 3, 3, 2], 2),就能得到你预期的3.25啦!

内容的提问来源于stack exchange,提问作者Alexander Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:38:43