如何在范围(0,0.1)中生成随机数到2位小数。到目前为止我的代码生成的数字在[0,0.1]范围内有两位小数:
radius = round(random.uniform(0, 0.1), 2)
答案 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
答案 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
包含低值,但排除高,那么您将获得从0
到max
的值,不包括低值,包括高值:
radius = round(0.1-random.uniform(0, 0.1), 2)