Ruby没有正确输出表示法

时间:2015-09-15 19:43:45

标签: ruby

我有一个概率函数

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)

问题标题可能也不正确,如果您认为有必要,请进行编辑。

2 个答案:

答案 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"