BigDecimal(可変長浮動少数点演算用拡張ライブラリ)

English

BigDecimal はオブジェクト指向の強力なスクリプト言語である Ruby に可変長浮動小数点 計算機能を追加するための拡張ライブラリです。 Ruby についての詳しい内容は以下のURLを参照してください。

目次


はじめに

Ruby には Bignum というクラスがあり、数百桁の整数でも計算することができます。 ただ、任意桁の浮動少数点演算用クラスが無いようです。そこで、 任意桁の浮動少数点演算用拡張ライブラリ BigDecimal を作成しました。 不具合や助言・提案がある場合どしどし、
shigeo@tinyforest.gr.jp までお知らせください。不具合を直す気は大いにあります。ただ、時間などの関係で約束 はできません。また、結果についても保証できるものではありません。 予め、ご了承ください。

このプログラムは、自由に配布・改変して構いません。ただし、著作権は放棄していません。 配布・改変等の権利は Ruby のそれに準じます。詳しくは README を読んでください。

インストールについて

BigDecimal を含む Ruby の最新版はRuby公式ページからダウンロードできます。 ダウンロードした最新版を解凍したら、通常のインストール手順を実行して下さい。 Ruby が正しくインストールされれば、同時に BigDecimal も利用できるようになるはずです。 ソースファイルは bigdecimal.c,bigdecimal.h の2個のみです。

使用方法とメソッドの一覧

「Rubyは既に書ける」という前提で、
require 'bigdecimal'
a=BigDecimal::new("0.123456789123456789")
b=BigDecimal("123456.78912345678",40)
c=a+b

というような感じで使用します。

メソッド一覧

以下のメソッドが利用可能です。 「有効桁数」とは BigDecimal が精度を保証する桁数です。 ぴったりではありません、若干の余裕を持って計算されます。 また、例えば32ビットのシステムでは10進で4桁毎に計算します。従って、現状では、 内部の「有効桁数」は4の倍数となっています。

以下のメソッド以外にも、(C ではない) Ruby ソースの形で 提供されているものもあります。例えば、

require "bigdecimal/math.rb"
とすることで、sin や cos といった関数が使用できるようになります。 使用方法など、詳細は math.rb の内容を参照して下さい。 その他、Float との相互変換などのメソッドが util.rb でサポートされています。 利用するには
require "bigdecimal/util.rb"
のようにします。詳細は util.rb の内容を参照して下さい。

クラスメソッド

インスタンスメソッド