Project

General

Profile

Feature #5523

Numeric#sign の追加

Added by tadf (tadayoshi funaba) over 5 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
[ruby-dev:44722]

Description

負の零なども含め正しく符号を判断するために必要です。実際、complex や
lib/cmath.rb などの中ではこのような判断が必要ですが、標準では提供されて
いないため、不自然なものになっています。

値は-1か+1のいずれかになります。


Related issues

Is duplicate of Ruby trunk - Feature #2968: 数値の正負を返すメソッドAssigned2010-03-16

History

#1 [ruby-dev:44725] Updated by hasari (Hiro Asari) over 5 years ago

0 については勿論 0 を返すのですよね。

http://ja.wikipedia.org/wiki/%E7%AC%A6%E5%8F%B7%E9%96%A2%E6%95%B0

複素数についてはどうですか。一般には z/|z| となる訳ですが、これを返すのでしょうか。

あと、#sgn も alias としてあった方が良いかと思います。

#2 [ruby-dev:44729] Updated by tadf (tadayoshi funaba) over 5 years ago

負の零を見分けるのが主眼になっているので、0 も 1 になる事を考えています。
複素数はエラーを考えています。

Common Lisp の signum は複素数にも値を返しますが、これはちょっと望んで
いるのと違いますね。

class Numeric
def signum
if self.zero?
self
else
self / self.abs
end
end
end

#3 [ruby-dev:44733] Updated by naruse (Yui NARUSE) over 5 years ago

#2968 の重複なので閉じます

#4 [ruby-dev:45448] Updated by mrkn (Kenta Murata) over 5 years ago

  • Status changed from Open to Closed

Also available in: Atom PDF