我知道我可以用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