모듈로 나누기가 시스템에서 발견 된 일부 반올림 오류를 생성 할 수 있습니다. 본질적으로 정말 어떠한 다른 것은 아니지만 시간의 작은 부분의 추가, 시간의 절반 최대 정확도는 ,이 문제를 해결해야 당신이 이미하고 있습니다 :
as.POSIXlt(mytime/1e6 , tz="EST", origin="1970-01-01") + 5e-7
[1] "2013-04-15 10:26:59.64599 EST"
대비 그와 :
mytime=1366039619646000
# Produces rounding error
as.POSIXlt(mytime/1000000, tz="EST", origin="1970-01-01") + (mytime %% mytime)/1000000
[1] "2013-04-15 10:26:59.645 EST"
as.POSIXlt(mytime/1e6 , tz="EST", origin="1970-01-01") + 5e-7
[1] "2013-04-15 10:26:59.646 EST"
그리고
mytime=1366039619645991
as.POSIXlt(mytime/1000000, tz="EST", origin="1970-01-01") + 5e-7
[1] "2013-04-15 10:26:59.645991 EST"
이것은 'mytime = 1366039619646000'과 같이 일부 반올림 오류가 발생하는 것으로 보입니까? –
@ SimonO101 아마도 기본 값이 double로 구현되어있어 컴퓨터에서 다른 반올림을 할 수 있습니다. –
이 0을 추가하는 요점은 정확히 무엇입니까? (mytime %% mytime)/1000000'? :) – eddi