[#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:42504] Re: floatの値がずれる

From: rubikitch <rubikitch@...>
Date: 2006-07-04 09:51:38 UTC
List: ruby-list #42504
From: Sato Hiroshi <hirocy.f01@plala.to>
Subject: [ruby-list:42503] floatの値がずれる
Date: Tue, 4 Jul 2006 18:38:19 +0900

るびきちです。

> floatをどんどん加算していくと,ときどき期待する値からずれることがあります.
> # rubyの問題ではないかもしれませんが...

これはruby以前の問題で、浮動小数点数の仕様(丸め誤差)です。
10進数で1/3が無限小数になるように、2進数で0.001は無限小数になるのです。

> これを回避する方法はないでしょうか?

1回の演算ごとに丸め誤差が生じるので浮動小数点数演算の回数を減らす。
または、固定小数点数ライブラリ(BigDecimal)を使ってみましょう。
--
rubikitch
http://www.rubyist.net/~rubikitch/

In This Thread