当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Kernel.BigDecimal用法及代码示例


本文简要介绍ruby语言中 Kernel.BigDecimal 的用法。

用法

BigDecimal(value, exception: true) → bigdecimal
BigDecimal(value, ndigits, exception: true) → bigdecimal
Returns the \BigDecimal converted from +value+
with a precision of +ndigits+ decimal digits.

When +ndigits+ is less than the number of significant digits
in the value, the result is rounded to that number of digits,
according to the current rounding mode; see BigDecimal.mode.

返回 value 转换为 BigDecimal,具体取决于 value 的类型:

  • Integer Float Rational Complex 或 BigDecimal: 直接转换:

    # Integer, Complex, or BigDecimal value does not require ndigits; ignored if given.
    BigDecimal(2)                     # => 0.2e1
    BigDecimal(Complex(2, 0))         # => 0.2e1
    BigDecimal(BigDecimal(2))         # => 0.2e1
    # Float or Rational value requires ndigits.
    BigDecimal(2.0, 0)                # => 0.2e1
    BigDecimal(Rational(2, 1), 0)     # => 0.2e1
  • 字符串:如果包含整数或浮点字面量,则通过解析转换;前导和尾随空格被忽略:

    # String does not require ndigits; ignored if given.
    BigDecimal('2')     # => 0.2e1
    BigDecimal('2.0')   # => 0.2e1
    BigDecimal('0.2e1') # => 0.2e1
    BigDecimal(' 2.0 ') # => 0.2e1
  • 响应方法 :to_str 的其他类型:首先转换为字符串,然后转换为 BigDecimal,如上。

  • 其他类型:

    • 如果关键字参数 exceptiontrue 则引发异常。

    • 如果关键字参数 exceptiontrue ,则返回 nil

如果 value 计算结果为 Float 并且 digits 大于 Float::DIG + 1,则引发异常。

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Kernel.BigDecimal。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。