From: Kenta Murata Date: 2010-03-16T07:49:58+09:00 Subject: [ruby-dev:40653] Re: [Feature #2968] 数値の正負を返すメソッド 村田です。 On 2010/03/16, at 3:38, Yui NARUSE wrote: > 数値の正負を返すメソッドが欲しいです。 > 主たる想定用途は 0.0 と -0.0 を区別したいときです。 > これは、0.0 > -0.0 や 0.0 == -0.0 では知ることができません。 > とりあえず flo.to_s[0] == ?- で知ることができますが、これではあんまりです。 > > 悩みどころはいつもの通りメソッド名ですが、 > * Numeric#positive? と Numeric#negative? > * Numeric#sign -> 負で -1、正で 1 > * Numeric#sign? -> 負で true, 正で false (signbit(3) に習う) > あたりでしょうか。 Numeric#sign? よりは、Numeric#positive? と Numeric#negative? を提供する 方が私は好きです。 Numeric#sign も同時に提供されていて良いと思います。 ところで、これらのメソッドは Complex ではどのように振舞うんでしょう? * Numeric で提供するメソッドは実部についての符号を扱い、 虚部については Complex で同類のメソッドを提供する。 * Numeric で提供するメソッドを Complex からは undef する。 実部や虚部の符号が知りたい場合は Complex#real.positive? のようにする。 この2パターンが思いつきました。 -- Kenta Murata OpenPGP FP = FA26 35D7 4F98 3498 0810 E0D5 F213 966F E9EB 0BCC 本を書きました!! 『Ruby 逆引きレシピ』 http://www.amazon.co.jp/dp/4798119881/mrkn-22 E-mail: mrkn@mrkn.jp twitter: http://twitter.com/mrkn/ blog: http://d.hatena.ne.jp/mrkn/