0

我在BigDecimal 类的文档中看到了以下代码:

相似地:

(::new(“1.2”) - BigDecimal(“1.0”)) == BigDecimal(“0.2”) -> true
(1.2 - 1.0) == 0.2 -> false

所以我想知道是否有必要使用这样的new方法:BigDecimal.new 2.5, 2. 还是使用 just 只是不好的做法BigDecimal 2.5, 2?当评估相同的 BigDecimal 值时,它们都会得到新的引用:

BigDecimal 2.5, 2
#=> #<BigDecimal:7ffa93e524b0,'0.25E1',18(36)> 
BigDecimal 2.5, 2
#=> #<BigDecimal:7ffa97236600,'0.25E1',18(36)>
4

1 回答 1

1

好吧,在最新的内核文档中,我们可以看到 BigDecimal 方法如下所示:

static VALUE
BigDecimal_global_new(int argc, VALUE *argv, VALUE self)
{
    return BigDecimal_new(argc, argv, rb_cBigDecimal);
}

换句话说,BigDecimal.new将在提供的参数上调用。所以,是的,没有必要明确地使用它。

于 2012-09-03T14:49:26.750 回答