.NET DateTime, различное разрешение при преобразовании в OADate и обратно?

Я конвертирую 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 явно достаточно хорошее.

7
задан Ezombort 16 September 2010 в 07:02
поделиться