private double ToDouble(TimeSpan timeSpan, TimeSpanUnits units) { if (units == TimeSpanUnits.Nanoseconds) { return (double)(timeSpan.Ticks) * 100.0; } else { return (double)timeSpan.Ticks / (double)TicksPerUnit(units); // cast first then divide to preserve fractional part of result } }