我有一个概率函数
ID2
当我做(3,4,5)
我得到输出def fac(x)
(1..x).inject(1, :*)
end
def prob(k, n)
fac(n) / (fac(k)* fac(n - k)) * (1.0/6.0)**k * 5.0/6.0**(n-k)
end
有没有办法让输出看起来像prob(16.0, 17.0)
?
问题标题可能也不正确,如果您认为有必要,请进行编辑。
答案 0 :(得分:3)
如果您不介意手动指定准确度,
"%.25f" % 5.021664214224737e-10
# => "0.0000000005021664214224737"
您可以通过将0
应用于其中来删除排名[1..-1]
。
答案 1 :(得分:1)
Convert the float to a BigDecimal然后use to_s
to achieve floating-point notation:
require 'bigdecimal'
require 'bigdecimal/util'
prob(16.0, 17.0).to_d.to_s("F")
=> "0.000000000502166421422474"