Why does TimeSpan.FromSeconds(double) round to milliseconds?
See the question and my original answer on StackOverflowI think the explanation is there: TimeSpan structure incorrectly handles values close to min and max value
And it looks like it's not going to change any time soon :-)