From: Yukihiro Matsumoto Date: 2006-05-17T08:16:57+09:00 Subject: [ruby-dev:28648] Re: ruby_strtodの精度 まつもと ゆきひろです In message "Re: [ruby-dev:28644] ruby_strtodの精度" on Tue, 16 May 2006 18:41:38 +0900, "U.Nakamura" writes: |具体的にはYAMLのテストなのですが、調べてみると、浮動小数点数 |リテラルとYAMLの浮動小数点数のloadとで内部値が微妙に異なる値 |になっていました。 |# 浮動小数点数をassert_equalで見ようとすることの是非はさておき | |つまり最近ruby_strtod()が変わって、YAML(というかsyck)はシステ |ムのstrtod()を使っていたから差が発生したのですが、そういうも |のということでいいのでしょうか。 そういうものではないかと思います。localeのことなど考えるとシ ステム実装は使えませんし、誤差が発生するのは止められませんし。 Floatをequalで比較してはいけないと。 |YAML側をruby本体側に合わせるのは簡単(ext/syck/rubyext.cと |ext/syck/bytecode.cでutil.hをincludeすればいい)なのですが、ど |うもruby_strtod()が従来より精度が落ちているのではないかという |気がして、ちょっと気になっています。 Syck側でRubyのstrtod()を使うように対処していただきたいです(っ て_whyに伝えないとな)。が、現在のstrtod()の精度を向上させる 努力は続けます。って、数値計算の話なのになんで私は試行錯誤な んてしてるんだろう?