Почему TimeSpan.FromSeconds (double) округляется до миллисекунд?

TimeSpan.FromSeconds принимает двойное значение, и может представлять значения вплоть до 100 наносекунд, однако этот метод необъяснимым образом округляет время до целых миллисекунд.

Учитывая, что я только что потратил полчаса, чтобы определить это (задокументированное!) поведение, зная, почему это может быть так, было бы упростят смирение с потраченным впустую временем.

Кто-нибудь может предложить, почему реализовано это, казалось бы, контрпродуктивное поведение?

TimeSpan.FromSeconds(0.12345678).TotalSeconds
    // 0.123
TimeSpan.FromTicks((long)(TimeSpan.TicksPerSecond * 0.12345678)).TotalSeconds
    // 0.1234567
34
задан Roman Starkov 12 January 2011 в 18:26
поделиться