【问题标题】:Ruby subsecond time addition incorrect [duplicate]Ruby亚秒时间加法不正确[重复]
【发布时间】:2013-02-21 02:15:08
【问题描述】:

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

【问题讨论】:

    标签: ruby time


    【解决方案1】:

    这主要是关于浮点运算。

    在 ruby​​ shell 中尝试1.4 - 1.3

    What Every Computer Scientist Should Know About Floating-Point Arithmetic

    【讨论】:

    • 答案永远正确。
    • 好文章解释一下,谢谢。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      • 2019-04-03
      相关资源
      最近更新 更多