[#48044] Re: ruby 1.9.2とRails3 へのアップグレード — "Endo Akira" <endo4917@...>

アスカルさん

12 messages 2011/05/04
[#48045] Re: ruby 1.9.2とRails3 へのアップグレード — "Y. NOBUOKA" <nobuoka@...> 2011/05/04

GyRCJSIlOSUrJWskNSRzGyhCCgobJEI/LjIsJEckOSEjGyhCCgo+IBskQjFzRiMkRyQ5ISMbKEIK

[#48062] 小数点つき時刻情報とTime#parse — Mitsuo KASAHARA <m.kasahara13@...>

笠原ともうします。

18 messages 2011/05/09
[#48068] Re: 小数点つき時刻情報とTime#parse — Tanaka Akira <akr@...> 2011/05/09

2011年5月9日10:29 Mitsuo KASAHARA <m.kasahara13@gmail.com>:

[#48070] Re: 小数点つき時刻情報とTime#parse — EGUCHI Osamu <eguchi@...> 2011/05/09

えぐち@エスアンドイーです

[#48072] Re: 小数点つき時刻情報とTime#parse — Tanaka Akira <akr@...> 2011/05/09

2011年5月9日13:43 EGUCHI Osamu <eguchi@sandeinc.com>:

[#48092] 後継者募集 — MoonWolf <moonwolf@...>

MoonWolfです。

22 messages 2011/05/22
[#48095] Re: 後継者募集 — Youhei SASAKI <uwabami@...> 2011/05/23

MoonWolf 様: 佐々木と申します.

[#48096] Re: 後継者募集 — MoonWolf <moonwolf@...> 2011/05/23

MoonWolfです。

[ruby-list:48070] Re: 小数点つき時刻情報とTime#parse

From: EGUCHI Osamu <eguchi@...>
Date: 2011-05-09 04:43:53 UTC
List: ruby-list #48070
えぐち@エスアンドイーです

2011年5月9日12:55 Tanaka Akira <akr@fsij.org>:
> 2011年5月9日10:29 Mitsuo KASAHARA <m.kasahara13@gmail.com>:
>> と、小数点以下6桁の情報を持つ時刻情報の差分を計算したら、何故か
>> 一つ目の方では
>> 0.00629800000000004
>> と
>> 00000000004
>> が余計にくっついて出力されました。

> 桁落ちというものでは。

桁落ちという見立ては同じですが、

class Time
 TICK = 1000000
 def -(y)
   return ((self.tv_sec * TICK + self.tv_usec) -
          (y.tv_sec * TICK + y.tv_usec)).to_f / TICK
 end
end

の様に、1マイクロ分解能で固定小数点処理したほうが
よりロバストではないでしゅうか?

% cat  qaz2.rb
#! /usr/bin/ruby -KU
require 'time'

a="2011-04-15 10:52:51.004956"
b="2011-04-15 10:52:50.998658"
print("#{Time.parse(a)-Time.parse(b)}\n")

a="2011-04-15 10:52:48.977298"
b="2011-04-15 10:52:48.970890"
print("#{Time.parse(a)-Time.parse(b)}\n")

class Time
 TICK = 1000000
 def -(y)
   return ((self.tv_sec * TICK + self.tv_usec) -
          (y.tv_sec * TICK + y.tv_usec)).to_f / TICK
 end
end

a="2011-04-15 10:52:51.004956"
b="2011-04-15 10:52:50.998658"
print("#{Time.parse(a)-Time.parse(b)}\n")

a="2011-04-15 10:52:48.977298"
b="2011-04-15 10:52:48.970890"
print("#{Time.parse(a)-Time.parse(b)}\n")

% ruby -v qaz2.rb
ruby 1.8.7 (2010-08-16 patchlevel 302) [amd64-freebsd8]
0.00629800000000003
0.006408
qaz2.rb:14: warning: method redefined; discarding old -
0.006298
0.006408

 えぐち

In This Thread