2017-02-23 35 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生成数字? –