[#35592] String#center — Take_tk <ggb03124@...>

 仕様拡張のお願い。と言うほどのものでもないですが・・

33 messages 2002/07/20
[#35593] Re: String#center — Kazuhiro NISHIYAMA <zn@...> 2002/07/20

西山和広です。

[#35596] Re: String#center — Take_tk <ggb03124@...> 2002/07/20

たけ(tk)です。

[#35597] Re: String#center — Kazuhiro NISHIYAMA <zn@...> 2002/07/20

西山和広です。

[#35599] Rational#to_int ← String#center — Take_tk <ggb03124@...> 2002/07/21

たけ(tk)です。

[#35601] Re: Rational#to_int ← String#center — matz@... (Yukihiro Matsumoto) 2002/07/21

まつもと ゆきひろです

[#35618] new mathn [Re: Rational#to_int ← String#center] — keiju@... (石塚圭樹) 2002/07/23

けいじゅ@日本ラショナルソフトウェアです.

[#35624] Re: new mathn [Re: Rational#to_int ← String#center] — matz@... (Yukihiro Matsumoto) 2002/07/24

まつもと ゆきひろです

[#35628] Re: new mathn [Re: Rational#to_int ← String#center] — keiju@... (石塚圭樹) 2002/07/24

けいじゅ@日本ラショナルソフトウェアです.

[#35630] Re: new mathn [Re: Rational#to_int ← String#center] — matz@... (Yukihiro Matsumoto) 2002/07/24

まつもと ゆきひろです

[ruby-list:35559] Re: Numeric#===

From: Tanaka Akira <akr@...17n.org>
Date: 2002-07-14 15:50:32 UTC
List: ruby-list #35559
In article <200207141304.AA01130@datapc.nifty.com>,
  Kazuhiro Yoshida <moriq.kazuhiro@nifty.ne.jp> writes:

> class Float
>   def ==(v)
>     (self - v).abs < Float.EPS
>   end
> end
> 
> とすれば
> 
> p a = 2**0.5
> p a**2 == 2   #=> true
> 
> になるのかな。

ならないんじゃないですかね。

class Float
  EPS = 2.2204460492503131E-16
  def ===(v)
    (self - v).abs < Float::EPS
  end
end

p a = 2**0.5
p a**2 === 2   #=> false

正しい値の
  0b10
に対して a**2 は
  0b10.000000000000000000000000000000000000000000000000001
になるんですが、これは誤差を
   0b0.000000000000000000000000000000000000000000000000001
だけ含んでいて、また EPS は
   0b0.0000000000000000000000000000000000000000000000000001
なので、誤差は EPS の 2倍あって true にはならない、というわけですが。

EPS を Ruby レベルに提供するのは悪くないと思いますが、質問者が期待して
いる機能とはかなり開きがあるんじゃないですかね。たぶん。

まぁ、質問者が期待している機能はそもそも実現可能かどうかというところか
らして難しいところですが。
-- 
[田中 哲][たなか あきら][Tanaka Akira]
「ふえろ! わかめちゃん作戦です$(C⊇」(Little Worker, 桂遊生丸)

In This Thread