(2010/03/27 18:19), KOSAKI Motohiro wrote:
>>> strtod(3) を参考にしたり、影響されたりすることは普通にあるとは思います
>>> が、strtod をこれ程までに尊敬している人は初めてです。
>>
>> わたしの主張は、以下のようなものです。
>> (1) -h.hhh±pd 形式は、符号・仮数・指数という浮動小数点数をそのまま表しているため、
>>     浮動小数点の内容を知るのに有用である
>> (2) -h.hhh±pd 形式は、C99 の浮動小数点数リテラルの一形式であり、
>>     その形式は文法に、出力は printf に、解釈は strtod に記述されている
>> (3) 有用かつ安定した形式なので Ruby でも扱えるべきだ
> 
> kosakiです
> 
> えぐちさんの提示された 0x1.badp+0
> については見解を提示してもらえませんでしょうか。有用なのは認めますが、
> 非常にマイナーな表記形式であり、導入しても使用ユーザは小数にとどまると考えています。
> もっというと、うれしいのは一般ユーザじゃなくて見当違いのバグ報告にたいしてwont
> fix といいやすくなるのが最大のメリットに見えます。
>
> よって副作用があるなら lib/scanf.rb
> に格下げというのは、ある意味現実的な判断のようにも思えます。
> これについて、どう判断しているのかを教えて欲しいです。

ML 上での最大の use case は浮動小数点数を理解していないユーザへの説明用でしょうね。

さて、えぐちさんの指摘は第一にはリテラルとしての導入は不可能という指摘だと思います。
それは仰るとおりです。

一方で、String#to_f との衝突で考えると、例えば "0x1.badp+0".to_f を実行した
場合の結果は何を期待しているのでしょうか。
たぶん 0x1 を解釈して 1.0 が返るのを期待するのかなと思います。
しかし、String#to_f は 16 進を解さないので、現在 0.0 が返ります。
つまり、元々期待はずれだった結果がまた別の値になるわけです。
これは、当初の期待が誤っていると言えるでしょう。
よって、String#to_f についてはえぐちさんの指摘は当たらないと考えます。

-- 
NARUSE, Yui  <naruse / airemix.jp>