Actions
Bug #1468
closedexact Time and inexact Time
Description
=begin
遠藤です。
現在、Time#- が Rational を返すようになっています。
$ ./ruby -e 'p Time.now - Time.now'
(-7/156250)
しかし、Time.now のように inexact な時刻の差分が、exact の
ように見える Rational になるのはよくないと思います。
Time.gm(2000) などは exact な時刻と考えられますが、それでも
以下で Rational が返るのは好ましくないと思います。
$ ./ruby -e 'p Time.gm(2000) + 0.1 - Time.gm(2000)'
(3602879701896397/36028797018963968)
よって Time オブジェクトに exact かどうかをあらわすフラグを
持たせる必要があるのではないでしょうか。
ただ、Time#- が Rational を返してもよいと思われる例は、
$ ./ruby -e 'p Time.gm(2000) + Rational(1, 2) - Time.gm(2000)'
(1/2)
くらいしか思いつきません。なので Time#- の結果を常に Integer
または Float にするという選択もあるかもしれません。
とりあえず問題提起と提案です。どう思われますでしょう。
--
Yusuke ENDOH mame@tsg.ne.jp
=end
Actions
Like0
Like0Like0Like0