0

我在 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"
4

2 回答 2

2

这主要是关于浮点运算。

1.4 - 1.3在红宝石外壳中尝试。

每个计算机科学家都应该知道的关于浮点运算的知识

于 2013-02-20T18:10:21.847 回答
1

这在之前已经讨论过了。您应该检查以下线程: ruby floating point errors

于 2013-02-20T18:15:08.687 回答