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

如何生成随机浮点数并保留1位小数(含Python 3.4实现)

生成随机浮点数并取整至1位小数(含Python 3.4适配)

嘿,这两个问题其实可以用一套思路搞定,我给你拆解清楚,连Python 3.4的适配也一起覆盖到:

核心步骤:生成随机数 + 小数位处理

不管是哪个Python版本,核心都是先拿到随机浮点数,再对它做1位小数的取整操作。

1. 生成指定范围的随机浮点数

用Python内置的random模块里的uniform()函数就行,它能生成两个数值之间的随机浮点数。比如要生成0到10之间的随机数:

import random
# 生成a到b之间的随机浮点数,这里a=0,b=10
random_float = random.uniform(0, 10)

如果只需要0到1之间的随机浮点数,直接用random.random()就可以了。

2. 四舍五入到1位小数

最直接的方法是用内置的round()函数,第二个参数指定要保留的小数位数:

rounded_num = round(random_float, 1)

注意:关于round()的特殊行为

这里要提个容易踩坑的点:Python的round()用的是银行家舍入法——当小数点后第二位刚好是5时,会取最近的偶数。比如:

  • round(2.35, 1) → 2.4(因为4是偶数)
  • round(2.25, 1) → 2.2(因为2是偶数)

如果你的业务场景需要严格的“遇5进1”式四舍五入,可以自己实现一个简单的函数:

def strict_round(num, decimals=1):
    # 放大10倍后加0.5取整,再缩小回去
    return int(num * 10**decimals + 0.5) / 10**decimals

用这个函数替代round()就能得到符合传统四舍五入规则的结果。

Python 3.4 专属说明

不用担心版本兼容问题!Python 3.4已经完全支持random.uniform()和round()函数,上面的所有代码都可以直接在3.4环境里运行。如果你的环境里random模块有什么异常,先确认是不是没正确导入模块哦。

完整示例代码

这里给你一个可直接运行的完整例子:

import random

def strict_round(num, decimals=1):
    return int(num * 10**decimals + 0.5) / 10**decimals

# 生成1到100之间的随机浮点数
raw_num = random.uniform(1, 100)
# 两种取整方式
default_rounded = round(raw_num, 1)
strict_rounded = strict_round(raw_num)

print(f"原始随机数:{raw_num}")
print(f"默认round处理后:{default_rounded}")
print(f"严格四舍五入处理后:{strict_rounded}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:27:08