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