开一个 irb, Time.now<Time.now 有时候返回 false, (大部分时候返回 true) Time.now.to_f<Time.now.to_f 总是返回 true
正常来说,前一个调用发生在后一个调用之前, 所以前一个时间戳总比后一个时间戳早, 然而 Time.now<Time.now 返回 false 是 什么原因呢,查了一下 Time 的精度,Time.now.to_f 到小数点后 6 位,也就是微秒级别的精度。 看来是我机器太快了。。
Time.now.to_f<Time.now.to_f 总是返回 true 多一个 to_f 调用 2 者之差就超过 1 微秒了。 (不要问我为什么需要这个,在做 least recently used cache, 所以需要时间戳的比较。。)