отображаемое вами значение - двойное ...
var val = 40195.315752;
var span = System.TimeSpan.FromMilliseconds(val);
var time = new DateTime(span.Ticks);
выше преобразует его в Datetime, но не забывайте, что System.Timespan выдерживает несколько перегрузок в диапазоне нагрузки, вам нужно определить, какой из них вам нужен ...