From: Tadashi Saito Date: 2003-07-31T18:50:21+09:00 Subject: [ruby-dev:21040] Re: [BigDecimal] exception handling 斎藤です。 ----- Original Message ----- From: "Shigeo Kobayashi" Sent: Thursday, July 31, 2003 1:23 PM Subject: [ruby-dev:21037] Re: [BigDecimal] exception handling > BigDecimal.mode(BigDecimal::EXCEPTION_FOO, ...) の指定は > 「BigDecimal のモジュール内で exception を発生、または無視するのか > をユーザが積極的に制御する」という Float にはない前提があります。 (snip) > to_i で BigDecimal.mode を無視して raise すれば確かに表面上は > Float と同じ事になりますが、 NaN の発生場所を知る役にはたちま > せん。従って、ユーザが「raise するな」と言っていることを守るという > 前提を無視してまでやる価値があるとは思えません。 その「raise するな」は、BigDecimal内の演算についての指定と 考えるべきではないでしょうか。 自分は「発生場所を知る」事に着目しているのではなく、NaNなど 「Integerで表せない数をIntegerに変換」しようとするのが 「例外的状況」であるということを言いたいのです。 これらは分けて考えるべきだと思います。 逆に、そういう場面でraiseせずにnilを返す事にどういったメリットが あるのでしょうか。どちらにせよ、そのnilが原因でraiseされる 運命にあると思うのですが…。 > # あと、送っていただいたパッチですが、現時点で計算結果に影響 > # ような、明らかなバグ以外は直ちに取り込む余裕はありません。 > # 時間ができた段階であるべき姿をもう一度考えてから参考にさせ > # てもらいます。 そうですか。 リリース前に少しでもバグを減らせたらと思っていたので、 正直、ちょっと残念です。 ところで、自分が[ruby-dev:20959]で指摘した、BigDecimal#divmodの バグはまだ直っていないみたいです。こちらは、修正をお願いできる でしょうか。 -- 斎藤ただし