けいじゅ@SHLジャパンです. 

In [ruby-list :00884 ] the message: "[ruby-list:884] Re: Bug report
and Request ", on Oct/22 17:06(JST) matz / caelum.co.jp (Yukihiro
Matsumoto) writes:

>|[1] print 10000000000000000000000 - 10000000000000000000001

bignum関連は信頼性がまだ低いですね(^^;;;

>|[2]
>|    $stdout.sync = TRUE
>|    print a = Float(982273762)
>|    print b = Float(1184838904)
>|    print a/b
>|    --
>|    9.82274e+08 1.62161e-308 Floating exception
>|
>|bの結果が明らかにおかしいですね. あとちょっと気になるのが, Floating
>|exceptionは発生するものと考えて良いのかしら??

>Floating exceptionはrubyでは検出していません.ですからライブ
>ラリによるというべきでしょう.ただし今回は変な値を元に計算し
>たせいで出たものですけど.

Floating exceptionが発生した場合は, 例外で捕捉せよってことですね. 

>|[3]
>|B  array[bignum]

>これは仕様です.rubyは31bitの範囲内で収まる整数はFixnumに
>変換しますから,Bignumであるということは20億以上の大きさがあ
>る訳です.rubyの配列は疎ではありませんから,現実的に不可能で
>すよね.

ですね.

>|ただ, もうちょっとましなエラーを出した方が...
>エラーメッセージは変えました.

はい.

>|[4] array[RANGE or idx, len] = array(size)

>もっともです.修正しました.この例の場合ですといつでも(少し
>だけ)高速になりました.

少しだけ? 処理時間は配列のサイズにか変わらず定数になっているんですよね?

>|[5] Array.new(size)

>sizeを指定した時のメモリの初期化で間違っているところがありま
>した.ごめんなさい.

ついでに, Hash.new(size) もリクエストします.

>|[6] Time

>絶対マイクロ秒か,intの範囲を越えてしまいますが,Bignumがあ
>れば可能ですね.とはいえ,どういう名前にしましょうか.独自の
>ものを導入する時にはいつも名前に悩むんですよね.

ですねえ...  といいつつ名前は任せます.

>両方とも対応してます.ドキュメントに書き忘れていました.Time

なんと...

>の引き算はオペランドがTimeの時はその差分をFloatで,数値の時
>にはその分だけ前の時間を返します.

Floatというと... 秒数なわけですね.

先ほどの絶対マイクロ秒もFloatにするというてもありますね. 有効桁数の関
係で無理があるかな...

__
..........................................石塚 圭樹@SHLジャパン(株)...
------------->アドレス変わりました!! e-mail: keiju / shljapan.co.jp <----