如何在Python中使用步骤获得随机浮点数
答
import random
def randrange_float(start, stop, step):
return random.randint(0, int((stop - start)/step)) * step + start
randrange_float(2.1, 4.2, 0.3) # returns 2.4
答
只是乘以一些适当的常量,以获得整数并将结果逆转操作。
start = 1.5
stop = 4.5
step = 0.3
precision = 0.1
f = 1/precision
random.randrange(start*f, stop*f, step*f)/f
非常感谢,它的工作原理! – SkyWalker 2012-08-14 10:13:40
使用'int(round(...))'可能比使用'int(...)'安全一点,特别是如果通常情况是'stop-start'接近多个'step'。否则很难预测“停止”是否可能。 – 2012-08-14 13:33:14