From: "NARUSE, Yui" Date: 2010-03-27T08:29:02+09:00 Subject: [ruby-dev:40782] Re: [Feature #2969] String#to_f が -h.hhh±pd を解釈できるように (2010/03/26 4:02), Tadayoshi Funaba wrote: >> なぜ同じなのでしょう。 >> 現在サポートしていないのは単に実装時期の問題だと思っているのですが。 > > 同じというよりは、もっと低いですかね。 > >> Ruby のリテラルは C 言語由来と思われるので、 >> これもやはり外しているとは思いません。 >> それとも、先に Ruby リテラルにこの形式を入れるべきという主張ですか? > > それはよくわかりません。perl 経由のような気もします。仮に別にそうであっ > ても、C に従わなければならないこともないでしょう。 > > 2進数や8進数も含めてそれが有用だから16進もある、場合によってはリテラル > もそうする、というなら Float() の仕様として個人的に納得できます。それは > そうですが、そうすべきだという主張ではありません。 つまり、ふなばさんは 16 進よりも 2 進や 8 進形式が好みであるところ、 16 進がそれらを差し置いて入るのは納得できないという事でしょうか。 >> Ruby の仕様・実装という意味でしたら、r2457 からするに、 >> 「同じものを提供しようとした」ように見えます。 >> ここで 16 進記法を解釈しなくなったのは、現状 "INF" や "NAN" なども >> 解釈しないことを考えると、C89 の strtod が由来だからでしょうかね。 >> この点はまつもとさんに確認を取ります。 > > 権威主義者でもないし、C やまつもとさんに忠誠を誓っているわけでもないの > で、別にそれで考えが変るわけじゃないんですよ。そりゃ、いろいろ言っても > まつもとさんの考えで決るとは思いますが。 > > strtod(3) を参考にしたり、影響されたりすることは普通にあるとは思います > が、strtod をこれ程までに尊敬している人は初めてです。 わたしの主張は、以下のようなものです。 (1) -h.hhh±pd 形式は、符号・仮数・指数という浮動小数点数をそのまま表しているため、 浮動小数点の内容を知るのに有用である (2) -h.hhh±pd 形式は、C99 の浮動小数点数リテラルの一形式であり、 その形式は文法に、出力は printf に、解釈は strtod に記述されている (3) 有用かつ安定した形式なので Ruby でも扱えるべきだ -- NARUSE, Yui