From: Tadayoshi Funaba Date: 2010-01-27T23:14:31+09:00 Subject: [ruby-dev:40190] Re: [Bug #2662] BigDecimal#ceil, etc. should not return Integer > 0 が一個足りませんでした。1E100000 はうちだと 8 秒ですね。1E1000000 > だとどうでしょう。 > しかし、Rational で動くなら、何かを直せばなんとかなりそうですね。 Rational 経由だと 0 ひとつ増えてもそこそこの速度で返るようですね。 関係あるかわからないけど、BigDecimal#** が結構遅かった記憶があります。 あと、 BigDecimal('3') ** BigDecimal('3') # TypeError: wrong argument type BigDecimal (expected Fixnum) BigDecimal('3') ** 3.3 # TypeError: wrong argument type Float (expected Fixnum) といったところで、Fixnum に比べても制限も多いし、実装にいろいろ手抜きが あるってことなのかな。 > 「提案の理由で直ちに revert する理由はない」というより、「どうしても > 変えないと困る理由がある」でないのであれば、1.9 系列の途中でむやみに > 仕様変更しないほうがいいと思います。理由は一貫性だけなんでしょうか。 答える立場にないけど、理由は一貫性で間違ってないと思います。単に一貫性 を与えてみた、ということではなく、一貫性が必要だと思ったからそうしたの だと思いますが。互換性を確保すべきなのかどうかは考え方次第だと思うので 僕には判りませんが。