Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > bigdecimalライブラリ > BigDecimalクラス > sign

instance method BigDecimal#sign

sign -> -3 | -2 | -1 | 0 | 1 | 2 | 3[permalink][rdoc]

自身の符号等の性質に応じて、Integer を返します。

符号が正であれば正の整数を返し、負であれば負の整数を返し、NaN であれば 0 を返します。

NaN        であれば、 0。 BigDecimal::SIGN_NaN と同じです。
+0         であれば、 1。 BigDecimal::SIGN_POSITIVE_ZERO と同じです。
-0         であれば、-1。 BigDecimal::SIGN_NEGATIVE_ZERO と同じです。
有限の正の値 であれば、 2。 BigDecimal::SIGN_POSITIVE_FINITE と同じです。
有限の負の値 であれば、-2。 BigDecimal::SIGN_NEGATIVE_FINITE と同じです。
+Infinity  であれば、 3。 BigDecimal::SIGN_POSITIVE_INFINITE と同じです。
-Infinity  であれば、-3。 BigDecimal::SIGN_NEGATIVE_INFINITE と同じです。

BigDecimal は、 0 であっても、+ か - の符号を持つことに注意して下さい。 (「bigdecimal/内部構造」を参照)


require "bigdecimal"

p BigDecimal("NaN").sign       # =>  0
p BigDecimal("0").sign         # =>  1
p BigDecimal("100").sign       # =>  2
p BigDecimal("Infinity").sign  # =>  3
p BigDecimal("-0").sign        # => -1
p BigDecimal("-5").sign        # => -2
p BigDecimal("-Infinity").sign # => -3

p BigDecimal("0").sign == BigDecimal::SIGN_POSITIVE_ZERO  # => true