なかだです。

At Fri, 1 Jun 2007 02:01:16 +0900 (JST),
matz / ruby-lang.org wrote in [ruby-cvs:19656]:
>     * numeric.c (flo_round): now takes optional argument to specify
>       number of digits, like round() in Python/PHP.
>     
>     * numeric.c (num_round): ditto.

こっちのnum_round()の変更ですが、いささか疑問です。

    rb_scan_args(argc, argv, "01", &nd);
    nd = rb_Float(nd);
    return flo_round(argc, &nd, num);

桁数を指定されていないときにnilをFloatに変換しようとしますが、
そもそも桁数をFloatにする必要はないと思います。それよりも、
Float以外のオブジェクトをそのままflo_round()に渡すのはどうかと。


Index: numeric.c =================================================================== --- numeric.c (revision 12420) +++ numeric.c (working copy) @@ -1344,9 +1344,5 @@ static VALUE num_round(int argc, VALUE* argv, VALUE num) { - VALUE nd; - - rb_scan_args(argc, argv, "01", &nd); - nd = rb_Float(nd); - return flo_round(argc, &nd, num); + return flo_round(argc, argv, rb_Float(num)); }
-- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦