From: "きむらこういち" Date: 2007-01-16T00:23:59+09:00 Subject: [ruby-list:43127] Re: 浮動小数点を比較するには 木村です。 07/01/15 に Tadashi Saito さんは書きました: > これはBigDecimalを使っても、やっぱり困る場面なのでしょうか? BigDeciamlはマニュアルによれば、以下の通り基数が10^なので、 Cでいうところのdouble で使われるような2が基数の浮動小数点形式の ものとは異なり、十進→二進の変換時の打切りが原因の誤差はでない と思います。 > BigDecimal は <浮動小数点数> = 0.xxxxxxxxx*10**n という10進形式で数値を保持します。 > しかし、計算機の浮動小数点数の内部表現は、言うまでもなく <浮動小数点数> = > 0.bbbbbbbb*2**n という 2進形式が普通です(x は 0 から 9 まで、b は 0 か 1 の数字)。 > BigDecimal がなぜ10進の内部表現形式を採用したのかを以下に説明します。 くわしくは http://www.ruby-lang.org/ja/man/?cmd=view;name=BigDecimal をどうぞ。 -- 木村浩一 I thought what I'd do was, I'd pretend I was one of those deaf-mutes or shoud I? mail kbk at kt.rim.or.jp web www.kt.rim.or.jp/~kbk/zakkicho/index.html