From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?=) Date: 2003-07-15T00:40:10+09:00 Subject: [ruby-dev:20663] Re: [BigDecimal] 標準添付案 けいじゅ@いしつかです. In [ruby-dev:20649] the message: "[ruby-dev:20649] Re: [BigDecimal] 標 準添付案", on Jul/13 22:14(JST) "Shigeo Kobayashi" writes: >小林です。 >> 斎藤です。 >> あれ、** も省くのでしたっけ。 >> それとも Bigdecimal ** Bigdecimalはできない、という話でしょうか。 >Bigdecimal ** Fixnum 以外はエラーです。 >中途半端なんですけど、Bigdecimal ** Fixnumはやりたいことが多いので >入れてあるだけです。勘違いしてもエラーになる分、害にことはないので >そのまま残す気ではいます。削除の意見があれば、そうしてもいいかなぁ >ってな感じです。 なるほど, BigDecimal ** Fixnum に限定しているならそれほど問題ないかも. >Floatとのcoerceが反対なのに、Float#to_dを BigDecimal に入 >れるんですか? coerceは暗黙的変換で, to_dとかは明示的変換ですから. 同じように考える必 要はないと思います. ただ, Float#to_r がないのと同じで, どういう仕様に するかはそれほど単純ではないですよね. ちなみに, Float#to_rに関しては, 以前正木さんが連文数展開を使ったものを 出されていたのですが, 正木さんのRealを使うものになっていたので, そのま までは使えないので, まだ, 導入できていないのですが... >Float#to_dは桁数や循環小数の丸めなどの問題があり >一律に BigDecimal サイドで取り扱うべきではありません。 >逆の[ruby-dev:20644] も同様で、あくまでも BigDecimal#split >を使って、ユーザサイドで責任をもつべきと考えます。 もうちょっと使いやすいのは考えられないでしょうかね? BigDecimal.from_float(float, prec) 見たいな感じで, 有効桁数を明示的に指定するようになっていれば, それほど 問題ないような気がします. floatを使っていても有効桁数は意識できるはず ですから. In [ruby-dev:20652] the message: "[ruby-dev:20652] Re: [BigDecimal] to_d, to_f, corece", on Jul/14 12:43(JST) "Shigeo Kobayashi" writes: >小林@お昼です。 12時間遅れですか... >個人的には Float との coerce が不可なのに BigDecimal#to_f ==> Float >をサポートするのは疑問なんですが、あえて反対する気もないので、 >せっかくいただいたパッチ(to_f)は取り込む方向で検討したいと思います。 to_fはあって良いと思います. BigDecimalで用意されていない関数を最終的に 使うとかもあると思いますので. そのときは, 一度Floatに変換したくなりま すので. あと, to_fが定義されていれば, Float(bigdecimal) が自動的に計算できるようになります. >ただ、String#to_d 等を bigdecimal.c に組み込むのは反対です。 >これは、前にも書きましたが、他のクラスに安易にメソッドを追加すること >は避けたいからです。前にも 1.2345.D とか 1.2345.R 等の記法があった >ように to_d という名前がいいか? という問題もあります。 >で、取りあえず bigdecimal-rational.rb を bigdecimal-others.rb とか > bigdecimal-misc.rb に変更して String#to_d とかはそちらに入れる >ようにしたいと思います。 これに関しては, わざわざ入れる必要はないと私も思います. __ ---------------------------------------------------->> 石塚 圭樹 <<--- ---------------------------------->> e-mail: keiju@ishitsuka.com <<---