任何需要使用BigDecimal.new方法的情况



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

类似:

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

所以我想知道是否有必要使用这样的new方法:BigDecimal.new 2.5, 2。还是仅仅使用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)>

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

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

换句话说,BigDecimal.new将通过提供的参数进行调用。所以,是的,并没有严格的必要明确使用它。

相关内容

最新更新