Я конвертирую DateTime в OADate. Я ожидал получить тот же самый DateTime при обратном преобразовании OADate, но теперь он имеет разрешение только миллисекунды и, следовательно, отличается.
var a = DateTime.UtcNow;
double oadate = a.ToOADate();
var b = DateTime.FromOADate(oadate);
int compare = DateTime.Compare(a, b);
//Compare is not 0; the date times are not the same
Тики от a: 634202170964319073
Тики от b: 634202170964310000
Двойное значение OADate : 40437.290467951389
В чем причина этого? Разрешение DateTime явно достаточно хорошее.