From: Shigeo Kobayashi Date: 2003-07-07T22:59:46+09:00 Subject: [ruby-dev:20531] Re: [BigDecimal] changing rule of coerce 小林です。 ----- Original Message ----- From: "石塚圭樹" Subject: [ruby-dev:20530] Re: [BigDecimal] changing rule of coerce > > >まつもと ゆきひろです > > >リテラルがない以上文字列からBigDecimalを作る機能など「便利な > >機能」は大事だという点には同意しますが、coerceで > > > > str = "1.2345" > > d = BigDecimal(str) > > d2 = d * "5.6789" > > > >を許すのはやりすぎだと思います。 > > 私も思います. そうでしょうか? "5.678".to_f が許される以上、"5.6789"を数値として扱う ことにそれほど無理があるとは思えないのですが? print 1.23 は 1.23.to_s が暗黙的に呼ばれるわけだし、 "5.6789".to_BigDecimal (が暗黙に呼ばれる動作)と考え れば、自然だと思います。 現に、Visual Basic や Excel(VBA)では  v = 3.5 * "1.23" という書き方は許されています。 確かに、Float では 1.23 * "10" は許されないので 整合性の観点から「やりすぎ」かもしれませんが... > >個人的な意見ですが。 > > d2 = d * BigDecimal.new("5.6789") > >でいいじゃないですか。テキストファイルについても同様です。 確かにそうなんですけど「美しくない」という点では 同意していただけますよね? > d2 = d * BigDecimal("5.6789") > > なら, agreeable ではないかしら? 他の数関係クラスもにたようなインターフェ > イスはあります. うーーん、BigDecimal.new("5.6789")よりはましですけど... ------------------ 小林 茂雄 shigeo@tinyforest.jp