Недавно я столкнулся с каким-то странным поведением в реализации .net timespan.
TimeSpan test = TimeSpan.FromMilliseconds(0.5);
double ms = test.TotalMilliseconds; // Returns 0
FromMilliseconds принимает двойной параметр. Однако, кажется, значение округлено внутри.
Если я создаю новый временной интервал с 5000 тиками (.5 мс), значение TotalMilliseconds будет правильным.
Взгляд на реализацию TimeSpan в рефлекторе показывает, что вход на самом деле отличен до длинного.
Почему Microsoft разработала метод FromMilliseconds для принятия двойного параметра вместо длинного (поскольку двойное значение бесполезно с учетом этой реализации)?