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

From: "GOTO Kentaro" <gotoken@...>
Date: 2006-07-04 16:56:01 UTC
List: ruby-list #42511
06/07/04 に Sato Hiroshi<hirocy.f01@plala.to> さんは書きました:
> 今回やりたかったことは,ある規則で単調増加するfloatの配列を
> 生成することでして,その単純なケースを試してみたら丸め誤差が
> 貯まって困ったな,という質問でした.
>
> On Tue, 4 Jul 2006 19:20:18 +0900,
> Sato Hiroshi wrote:
> > 100.times { x << (x[-1] * 10**3).floor * 10**(-3) + 0.001 }
>
> これだとあまりにも泥臭いので,ほとんど同じではあるのですが,
> 最初から十分な桁の整数で配列を作成して,最後にそれを
> collect!でfloatに変える,という方法で解決できました.
> 最善の方法ではないかもですが,ひとまずこれでいけそうです.

もし、そういう数値配列の操作をいろいろするなら
標準添付ではないですが NArray を使ってみるのもよいかも。
http://narray.rubyforge.org/

次の例は 0 から 1 ずつ増える100個の Float からなる配列 x をつくり、
その各要素を 1000 で割ってから、100要素の乱数の配列 r と
要素ごとに足し合わせます。

require "narray"
x, r = NArray.float(100), NArray.float(100)
x.indgen!
x.div!(1000)
r.random!
p x+r


ごとけん

In This Thread