.NET DateTime, ¿una resolución diferente al convertir ay desde OADate?

Estoy convirtiendo un DateTime a OADate. Esperaba obtener exactamente el mismo DateTime al volver a convertir el OADate, pero ahora solo tiene una resolución de milisegundos y, por lo tanto, es diferente.

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

Garrapatas de a: 634202170964319073

Garrapatas de b: 634202170964310000

El doble de OADate: 40437.290467951389

¿Cuál es la razón para esto? La resolución de DateTime es claramente lo suficientemente buena.

Respuestas a la pregunta(3)

Su respuesta a la pregunta