【发布时间】:2018-04-05 03:53:28
【问题描述】:
当我没有小数时,没关系:
time = parse_date_time('5:55', 'MS')
second(time)
# 55
当我添加一个小数时,它会减少 1
time = parse_date_time('5:55.34', 'MS')
second(time)
# 56.34
它显然检测到了我最初的小数位,但它似乎仍在将个位四舍五入。
这是预期的行为吗?
额外信息:
这发生在 Windows 10 上的
1.7.1和1.7.3两个版本中这发生在
1.7.1Mac OS Sierra 中
【问题讨论】:
-
你为什么不在格式部分使用
;? -
这可能是
parse_date_time中的一个错误。我最初认为这是as.POSIXlt(time)$sec操作引入的舍入错误,但我现在发现这种行为在所有情况下都会发生。由于 lubridate 的默认行为是四舍五入,我只能想象它不知道如何处理毫秒格式,并且MS是分钟和秒,但不需要小数。我尝试了小数秒的各种选项,但它仍然增加了鬼秒。这令人沮丧!你已经知道了:) -
您确定您运行的是最新版本的 lubridate 吗?当我运行完全相同的命令时,我得到正确的结果 55.34 (packageVersion("lubridate") return "1.7.3")
-
我在运行
1.7.1,但是当我升级到1.7.3时,仍然出现该错误。