Как округлить TimeSpan до одной цифры за миллисекунду - PullRequest
0 голосов
/ 27 декабря 2018

Как можно округлить, чтобы получить только одну цифру за миллисекунды?

Я попробовал какое-то решение по этой ссылке, но никто не работает: Можно ли округлить объект .NET TimeSpan?

00:23:01.4999890 -> 00:23:01.5
15:02:02.9999785 -> 15:02:03.0
08:03:59.9605388 -> 08:04:00.0
03:16:00.8605388 -> 03:16:00.9
19:12:01.8420745 -> 19:12:01.8
04:05:03.8417271 -> 04:05:03:8

1 Ответ

0 голосов
/ 27 декабря 2018

Вы можете округлить до 100 миллисекунд (10-х секунд) следующим образом:

var timespan = TimeSpan.Parse("00:23:01.4999890");
var rounded = TimeSpan.FromSeconds(Math.Round(timespan.TotalSeconds, 1));

Затем использовать строку пользовательского формата , чтобы отображать только 1 цифру после десятичной точки:

rounded.ToString(@"hh\:mm\:ss\.f");
// OUTPUT:
// 00:23:01.5

Другим вариантом будет использование метода расширения из этого ответа :

rounded = timespan.Round(TimeSpan.FromMilliseconds(100));
...