2017-02-23 73 views
-1

我想生成該值BigDecimal.new("42.00")隨機值的BigDecimal

SecureRandom.random_number(100) 

但我怎麼能生成隨機量這樣的「42.00」?

+0

爲什麼你認爲'BigDecimal'會給你的格式?因爲它被推薦用於貨幣價值? – Stefan

回答

2

BigDecimal#new接受的數值,以及:

a = BigDecimal.new(SecureRandom.random_number(100)) 
#=> #<BigDecimal:7f88dace71f0,'0.42E2',9(27)> 
a.to_f 
#=> 42.0 

順便說一句,什麼是雙SecureRandom.random_number點? :)

編輯:

要生成請求的格式的字符串:

sprintf("%0.02f", a) 
#=> "42.00" 
sprintf("%0.05f", a) 
#=> "42.00000" 
+0

我想每次生成隨機數。有沒有更好的辦法? –

+0

@PeterPenzov我展示瞭如何生成隨機的BigDecimal實例。不需要雙'SecureRandom.random_number' –

+0

是的,我的錯誤。但我怎麼能用.00生成數字? –