确保Ruby将数字视为小数而不是浮点数

时间:2012-09-26 02:48:31

标签: ruby type-conversion

假设我有一个方法:

def calculate(alpha, beta)
  # do stuff
end

如何确保在调用calculate(1.0,2.0)时它始终将参数视为小数而不是浮点数或整数?

2 个答案:

答案 0 :(得分:4)

如果您正在寻找可以作为BigDecimal处理的params,您可以使用以下内容:

    require 'bigdecimal'
    require 'bigdecimal/util'

    def calculate(alpha, beta)
      alpha_bigdec = alpha.to_d
      beta_bigdec = beta.to_d
    end

答案 1 :(得分:1)

Ruby标准库中有BigDecimal

def calculate(alpha, beta)
  alpha = BigDecimal.new alpha
  beta = BigDecimal.new beta

  # rest of method here
end

然后,您可以参考BigDecimal documentation查看可以使用哪些方法对其进行操作。我能想到的一些问题包括to_sto_ito_raddsub等。