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

class BigDecimal

クラスの継承リスト: BigDecimal < Numeric < Comparable < Object < Kernel

要約

特異メソッド

定義 説明
_load(str)
double_fig

Ruby の Float クラスが保持できる有効数字の数を返します。

induced_from(x)
limit([n])

生成されるBigDecimalオブジェクトの最大桁数をn桁に制限します。 戻り値は設定する前の値です。設定値のデフォルト値は0で、桁数無制限という意味です。 n を指定しない、または n が nil の場合は、現状の最大桁数が返ります。 計算を続行する間に、数字の桁数が無制限に増えてしまうような場合 limit で 予め桁数を制限できます。この場合 BigDecimal.mode で指定された丸め処理が 実行されます。ただし、インスタンスメソッド (BigDecimal#truncate / BigDecimal#round / BigDecimal#ceil / BigDecimal#floor / BigDecimal#add/ BigDecimal#sub / BigDecimal#mult / BigDecimal#div) の桁数制限は limit より優先されます。

mode(s [, v])

BigDecimalの実行結果を制御します。 第2引数を省略、または nil を指定すると現状の設定値が戻ります。 以下の使用方法が定義されています。

new(s [, n])

新しい BigDecimal オブジェクトを生成します。 s は数字を表現する初期値を文字列で指定します。スペースは無視されます。 また、判断できない文字が出現した時点で文字列は終了したものとみなされます。 n は必要な有効桁数(a の最大有効桁数)を整数で指定します。 n が 0 または省略された ときは、n の値は s の有効桁数とみなされます。 s の有効桁数より n が小さいときも n=0 のときと同じです。 a の最大有効桁数は n より若干大い値が採用されます。 最大有効桁数は以下のような割り算を実行するとき等に意味を持ちます。

ver

インスタンスメソッド

定義 説明
self % n

詳細は Float#% を参照して下さい。

self * other

乗算 (c = a * b)。

self ** n

a の n 乗を計算します。n は整数。

self + other

加算 (c = a + b)。

+
self - other

減算 (c = a - b)、または符号反転 (c = -a)。

-
self / other

除算 (c = a / b)。

self < other
self <= other
self <=> other

a == b なら 0、a > b なら 1、a < b なら -1 になります。

self == other
self === other
self > other
self >= other
_dump
abs

a の絶対値

add(b, n)

以下のように使用します。

ceil([n])

a 以上の整数のうち、最も小さい整数を計算し、 その値 (BigDecimal 値)を返します。

coerce
div(b [, n])

以下のように使用します。

divmod(n)

詳細は Float#divmod を参照して下さい。

eql?
exponent

指数部を整数値で返します。

finite?

a.finite? は a が∞または NaN でないとき真を返します。

fix

self の小数点以下の切り捨て。

floor([n])

a 以下の最大整数 (BigDecimal 値) を返します。

frac

self の整数部分の切り捨て。

hash
infinite?

a.infinite? は a が+∞のとき 1 、-∞のときは -1、 それ以外のときは nil を返します。

inspect

デバッグ出力に使用されます。

modulo(n)

詳細は Float#modulo を参照して下さい。

mult(b, n)

以下のように使用します。

nan?

a.nan? は a が NaN のとき真を返します。

nonzero?

a が 0 なら nil、0 以外なら a そのものが返ります。

power(n)

メソッド演算子 ** と同じで、a の n 乗を計算します。n は整数。

precs

a の有効数字 (n) と最大有効数字 (m) の配列を返します。

quo(n)

詳細は Float#quo を参照して下さい。

remainder(n)

詳細は Float#remainder を参照して下さい。

round(n [, b])

クラスメソッド BigDecimal.mode(BigDecimal::ROUND_MODE,flag) で指定した BigDecimal::ROUND_MODE に従って丸め操作を実行します。 BigDecimal.mode(BigDecimal::ROUND_MODE,flag) で何も指定せず、 かつ、引数を指定しない場合は 「小数点以下第一位の数を四捨五入して整数(BigDecimal 値)」にします。

sign

値が正 (sign > 0)、負 (sign < 0)、その他 (sign == 0) であるかの情報を返します。

split

BigDecimal 値を 0.xxxxxxx*10**n と表現したときに、 符号 (NaNのときは 0、それ以外は+1か-1になります)、 仮数部分の文字列("xxxxxxx")と、基数(10)、更に指数 n を配列で返します。

sqrt(n)

a の有効桁 n 桁の平方根 (n の平方根ではありません) をニュートン法で計算します。

sub(b, n)

のように使用します。

to_f

Float オブジェクトに変換します。 よりきめ細かい値が必要ならば BigDecimal#split メソッドを利用してください。

to_i

小数点以下を切り捨てて整数に変換します。

to_int
to_s([n])

文字列に変換します (デフォルトは "0.xxxxxEn" の形になります)。

truncate

小数点以下の数を切り捨てて整数 (BigDecimal 値)にします。 以下のように引数を与えて、小数点以下 n+1 位の数字を操作することもできます。 n が正の時は、小数点以下 n+1 位の数字を切り捨てます (小数点以下を、最大 n 桁にします)。 n が負のときは小数点以上 n 桁目を操作します (小数点位置から左に少なくとも n 個の 0 が並びます)。

zero?

a が 0 なら true を返します。

定数

定義 説明
BASE
EXCEPTION_ALL
EXCEPTION_INFINITY
EXCEPTION_NaN
EXCEPTION_OVERFLOW
EXCEPTION_UNDERFLOW
EXCEPTION_ZERODIVIDE
ROUND_CEILING
ROUND_DOWN
ROUND_FLOOR
ROUND_HALF_DOWN
ROUND_HALF_EVEN
ROUND_HALF_UP
ROUND_MODE
ROUND_UP
SIGN_NEGATIVE_FINITE
SIGN_NEGATIVE_INFINITE
SIGN_NEGATIVE_ZERO
SIGN_NaN
SIGN_POSITIVE_FINITE
SIGN_POSITIVE_INFINITE
SIGN_POSITIVE_ZERO

継承したメソッド

arg clone conj fdiv im imag integer? real step =~ __id__ __send__ class dclone display enum_for equal? extend freeze frozen? initialize initialize_copy instance_eval instance_exec instance_of? instance_variable_defined? instance_variable_get instance_variable_set instance_variables is_a? marshal_dump marshal_load method method_missing methods nil? pretty_inspect pretty_print pretty_print_cycle pretty_print_inspect pretty_print_instance_variables private_methods protected_methods public_methods remove_instance_variable respond_to? singleton_method_added singleton_method_removed singleton_method_undefined singleton_methods taint tainted? tap to_a to_ary to_hash to_io to_proc to_regexp to_str to_yaml to_yaml_properties to_yaml_style untaint

追加されるメソッド

定義 説明 ライブラリ
to_digits -> String

自身を "1234.567" のような十進数の形式にフォーマットした文字列に変換し ます。

bigdecimal/util
to_r -> Rational

自身を Rational に変換します。

bigdecimal/util