NSDateFormatter timeIntervalSince1970奇怪的行为,以毫秒为单位

时间:2015-10-01 03:45:12

标签: nsdateformatter

我正在尝试使用NSDateFormatter解析一个带有毫秒的日期,当我打印出自1970年以来的时间间隔时,我得到了奇怪的结果。这是我的测试代码:

var timeStr = "2015-09-29 14:32:42.297-07"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSSx"
let date = dateFormatter.dateFromString(timeStr)!
let dateFormatted = String(format: "%.20f", date.timeIntervalSince1970)
print("date: \(dateFormatted)")

结果:"date: 1443562362.29699993133544921875\n"

不是以297结尾,而是以接近它的东西结束。为什么呢?

1 个答案:

答案 0 :(得分:0)

似乎这就是双打工作的方式。它与NSDateFormatter无关。如果我制作一个价值为2.3的双倍然后打印到20位小数,我得到2.99999990453636 ...或者其他东西。