[#42503] floatの値がずれる — Sato Hiroshi <hirocy.f01@...>

hirocyと申します.

33 messages 2006/07/04
[#42504] Re: floatの値がずれる — rubikitch <rubikitch@...> 2006/07/04

From: Sato Hiroshi <hirocy.f01@plala.to>

[#42505] Re: floatの値がずれる — Sato Hiroshi <hirocy.f01@...> 2006/07/04

hirocyです.るびきちさん,ありがとうございます.

[#42569] JVN、スクリプト言語「Ruby」の2件の脆弱性情報を公表 — Takahiro Kambe <taca@...>

こんばんは。

19 messages 2006/07/11
[#42570] Re: JVN、スクリプト言語「Ruby」の2件の脆弱性情報を公表 — Yukihiro Matsumoto <matz@...> 2006/07/11

まつもと ゆきひろです

[#42572] Re: JVN、スクリプト言語「Ruby」の2件の脆弱性情報を公表 — Takahiro Kambe <taca@...> 2006/07/11

In message <1152619872.835566.21152.nullmailer@x31.priv.netlab.jp>

[#42575] Re: JVN、スクリプト言語「Ruby」の2件の脆弱性情報を公表 — Yukihiro Matsumoto <matz@...> 2006/07/11

まつもと ゆきひろです

[ruby-list:42537] Re: rational.so /Re: Float/String#to_r

From: Shin-ichiro HARA <sinara@...>
Date: 2006-07-06 03:42:30 UTC
List: ruby-list #42537
原です。

>坂野 正明です。

>最初に公開されたのが、[ruby-math:00902] 2003年7月だから、
>3年ですか。石の上にも…? (^^)

今回は最後までやります。(…と宣言しておかないとまた尻切れになっ
てしまうので。)

>美しいですね。
>ruby-dev の該当スレッドにざっと目を通したところ、Common Lisp の
>命名を借りてらっしゃる、とのこと。なるほど、です。

rationalize は面白いのだけど、ちょっとおもしろ過ぎなので「標準」
的なメソッドして採用するかどうか迷うところです。

>[ruby-dev:28553]などの inspect に関しては、デバック中は(Rationalと
>分かる)印が欲しい(現状?)、というのに賛成です。今の Ruby 標準だと、
>a=2/3 は 0 になりますが、a=Rational(2,1)/3 は異なるので、内部的に
>Integer かどうかは重要ですから。

最初/1省略派だったのですが、やっぱりあった方が良いという気持ちに
なってます。

># mathn 形式がRuby標準に持ってこられるなら、歓迎しますが (^^)

それを言い出すとまた大論争になるので、するとまたRationalが頓挫す
るので、今しばらくは判断保留でお願いします。:-)

>一点、精度を(必要に応じて)落とすメソッドがあってもいいかも知れません。
>rational が気に入られない理由のひとつに、速度をよく聞きます。たとえば、
> 5764607523034235/576460752303423488 よりは、1/100 の方が、内部的な
>計算速度は向上します。だから、
> 5764607523034235/576460752303423488 → 1/100
>にするようなメソッドがあってもいいかも知れません。

ふなばさんの言うとおり、それに近いことはあります。

  x.rationalize(e)

とすると x - e から x + e までの中で一番簡単な有理数を探します。
ちょっと面白いのは、x は Float だけでなく Rational でもいいとい
うことです。もともと x が q/p に十分近ければ、x から q/p を「復
元」するには、e を p**(-2) ぐらいに取ればいいです。

引数の無い rationalize とある rationalize(e) はちょっと性質が違
うので同じメソッド名はどうかという意見もあるのですが、そこはそれ、
Rubyだからいいかと、、、違うか。

> r.precision(order=5)
>など?
># order として、有効桁数を持ってくるか、小数点以下の有効桁数(お金の計算
># などではそうあるべき?)を持ってくるか、あるいはその両方サポートか、
># というのがひとつ問題として残りますか。

ネーミングがはまればあり得るかもしれませんね。しかし「標準」のRational
には難しいでしょう。Rationalのメソッドには基本的には「十進数」、
「二進数」など数の表記に関わるメソッドは入れて無いから。


In This Thread