我遇到了在ruby中添加浮点数到时间的问题。在下面的例子中,t2如何不等于2013-02-15T01:17:17.996000000?
irb(main):094:0> t1.strftime("%Y-%m-%dT%H:%M:%S.%N")
=> "2013-02-15T01:16:47.785000000"
irb(main):095:0> t2 = t1 + 30.211
=> 2013-02-15 01:17:17 -0700
irb(main):096:0> t2.strftime("%Y-%m-%dT%H:%M:%S.%N")
=> "2013-02-15T01:17:17.995999999"
答案 0 :(得分:2)
这主要是关于浮点运算。
在ruby shell中尝试1.4 - 1.3
。
What Every Computer Scientist Should Know About Floating-Point Arithmetic
答案 1 :(得分:1)
之前已经讨论过这个问题。你应该检查以下线程: ruby floating point errors