From: Nobuyoshi Nakada Date: 2007-06-01T10:21:49+09:00 Subject: [ruby-dev:30860] Re: [ruby-cvs:19656] Ruby:r12420: * numeric.c (flo_round): now takes optional argument to specify なかだです。 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はできる。 中田 伸悦