TimeSpan.FromSeconds
принимает двойной и может представлять значения до 100 наносекунд, однако этот метод необъяснимо округляет время до целых миллисекунд.
Учитывая, что я только что потратил полчаса, чтобы определить это (документированное!) поведение, зная, почему это может быть так, было бы легче мириться с потерянным временем.
Может ли кто-нибудь предположить, почему это, казалось бы, контрпродуктивное поведение реализовано?
TimeSpan.FromSeconds(0.12345678).TotalSeconds
// 0.123
TimeSpan.FromTicks((long)(TimeSpan.TicksPerSecond * 0.12345678)).TotalSeconds
// 0.1234567