生成特定范围内的随机数

时间:2016-11-24 17:55:58

标签: python

如何在范围(0,0.1)中生成随机数到2位小数。到目前为止我的代码生成的数字在[0,0.1]范围内有两位小数:

radius = round(random.uniform(0, 0.1), 2)

3 个答案:

答案 0 :(得分:7)

解决问题的最简单方法可能是用整数来思考,而不是浮点数。

你基本上想要可能的随机数,如0.01,0.02,0.03,......,0.09,0.10。

首先生成1到10之间的整数,然后除以100.0得到一个浮点数。

以下是代码:

x = random.randint(1, 10)
y = x / 100.0

文档:random.randint(a, b)

答案 1 :(得分:0)

radius = round(random.uniform(0.005, 0.10499999999999), 2)
print(radius)

您还需要扩展采样值的范围,以确保选择边号0.01和0.1的概率与所需范围内其他任何边号的概率相同。否则,将以其他数字概率的一半对它们进行采样。我假设舍入函数取整,即0.105最终将变为0.11而不是0.10。

答案 2 :(得分:-1)

尝试从最大值中减去随机值,因为uniform包含低值,但排除高,那么您将获得从0max的值,不包括低值,包括高值:

radius = round(0.1-random.uniform(0, 0.1), 2)