Faker有没有办法在0-1之间生成随机小数点?https://github.com/faker-ruby/faker/issues/1834
Faker::Number.decimal(l_digits= 2, r_digits= 2).within(range: 0..1) 以上内容不起作用。错误:
 undefined method `within' for "12.4" String  12.4是生成的随机数
如果我不能使用faker,那么Ruby中有什么方法可以生成这个吗?我只需要在0到1之间生成一个小数点2位的数字。
发布于 2020-02-22 20:27:47
发布于 2020-02-21 23:00:01
尝试:
rand.round(2)rand生成一个随机数,round将其舍入到所需的小数。这可能会生成一个小于两个小数位数的数字(例如0.5)。如果要强制执行此操作,可以将随机数格式化为字符串:
Kernel.format("%.2f", rand)其中,%f是作为浮点数的格式,而%.2f是两个十进制数字的特定形式。您实际上可以省略Kernel,只需调用format或使用%,如下所示:
"%.2f" % rand(我更喜欢Kernel.format,对我来说似乎更容易感觉到)
现在,这又带来了另一个问题:
pattern = "%.2f"
Kernel.format(pattern, 0) # => "0.00"
Kernel.format(pattern, 0.9999999) # => "1.00"因为它在格式化时被舍入,所以数字突然不小于1。如果你们之间的意思是不包括1,那么你需要对它再做一些调整:
Kernel.format(pattern, 0.floor(2)) # => "0.00"
Kernel.format(pattern, 0.9999999.floor(2)) # => "0.99"https://stackoverflow.com/questions/60347186
复制相似问题