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

确保Ruby将数字视为小数而不是浮点数,ruby,type-conversion,Ruby,Type Conversion,假设我有这样一个方法: def calculate(alpha, beta) # do stuff end 如何确保调用calculate1.0,2.0时,它始终将参数视为小数,而不是浮点数或整数?Ruby标准库中有该类 def calculate(alpha, beta) alpha = BigDecimal.new alpha beta = BigDecimal.new beta # rest of method here end 然后,您可以参考,查看可以使用哪些方法

假设我有这样一个方法:

def calculate(alpha, beta)
  # do stuff
end
如何确保调用calculate1.0,2.0时,它始终将参数视为小数,而不是浮点数或整数?

Ruby标准库中有该类

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

  # rest of method here
end
然后,您可以参考,查看可以使用哪些方法对其进行操作。我脑海中能想到的几个例子是to_s、to_I、to_r、add、sub等等。

Ruby标准库中有这个类

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

  # rest of method here
end

然后,您可以参考,查看可以使用哪些方法对其进行操作。我脑海中能想到的几个参数是to_s、to_I、to_r、add、sub等。

如果您希望将参数处理为BigDecimal,可以使用以下方法:

    require 'bigdecimal'
    require 'bigdecimal/util'

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

如果要将参数处理为BigDecimal,可以使用以下方法:

    require 'bigdecimal'
    require 'bigdecimal/util'

    def calculate(alpha, beta)
      alpha_bigdec = alpha.to_d
      beta_bigdec = beta.to_d
    end
你说的是十进制的包裹吗?它已经被Flt包取代了。我的意思是将类型视为BigDecimal类型,我相信它仍然受支持。你是说Decimal包吗?它已经被Flt包所取代。我的意思是将这些类型视为BigDecimal类型,我相信这仍然是受支持的。