[#28653] create header (Re: Re: ossl_cipher.c:124: warning: control reaches end of non-void function) — "Nobuyoshi Nakada" <nobu@...>

なかだです。

8 messages 2006/05/18

[ruby-dev:28648] Re: ruby_strtodの精度

From: Yukihiro Matsumoto <matz@...>
Date: 2006-05-16 23:16:57 UTC
List: ruby-dev #28648
まつもと ゆきひろです

In message "Re: [ruby-dev:28644] ruby_strtodの精度"
    on Tue, 16 May 2006 18:41:38 +0900, "U.Nakamura" <usa@garbagecollect.jp> 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()の精度を向上させる
努力は続けます。って、数値計算の話なのになんで私は試行錯誤な
んてしてるんだろう?

In This Thread

Prev Next