我知道我可以用rand(max)来产生随机浮点数。我试图在一个范围内生成一个浮点数,这应该不难。但是例如rand(1.4512)返回0,因此rand不是用浮点数计算的。现在我尝试了一些小技巧,将其转换为整数,然后在我想要的范围内随机化一个拟合数字,然后将其计算回浮点数。如何最好地创建一个随机浮点数在两个浮点数之间的范围内
我的问题是如何以更好的方式做到这一点。如果没有更好的办法,为什么这个不工作? (也许这对我来说太迟了,我应该在2个小时前开始睡觉..)。整个事情的目标是成为计算数据库记录的“位置”字段的方法,以便用户可以手动订购它们。我从来没有做过这样的事情,也许有人可以用更好的解决方案来暗示我。
这里是到目前为止的代码:
def calculate_position(@elements, index)
min = @elements[index].position
if @elements[index + 1].nil?
pos = min + 1
else
pos = min + (rand(@elements[index + 1].position * 10000000000)/10000000000)
end
return pos
end
谢谢!
如果下面的答案是不可接受的,请你澄清这个问题? – Josh 2009-11-11 04:47:53
谢谢大家对他们的回答,干净和很好的解释 – pduersteler 2009-11-11 06:55:54
@ sandor_bedo的答案可能是这里最好的:'rand(-34.0..53。8)' – Automatico 2014-02-20 15:21:17