c#如何用时间跨度截断毫秒数?

时间:2018-03-14 14:55:50

标签: c# timer timespan milliseconds

我想显示一个表示计时器的浮点数,我试图将其格式化为:

  <00> 00:00:00(分钟:秒:毫秒)

public static string ConvertToTime(float t){
    TimeSpan ts = TimeSpan.FromSeconds(t);

    return string.Format("{0:00}:{1:00}:{2:00}", ts.Minutes, ts.Seconds, ts.Milliseconds);
}

但是这将给出整整毫秒,而不是精度,甚至我用00定义格式。

  

例如,如果计时器是3.4234063f,它应该输出00:03:42而不是00:03:423。

这是一个基本的东西,但是在使用时间跨度时我无法解决它。

2 个答案:

答案 0 :(得分:0)

当你需要的只是一些简单的数学时,不要使用TimeSpan

这样的事情(未经测试)避免了分配并完成了你想要的东西。

public static string ConvertToTime(float t){
    int totalSeconds = (int)t;
    int minutes = totalSeconds / 60;
    int seconds = totalSeconds % 60;
    int hundredthsOfASecond = (int)((t - totalSeconds)*100);
    return $"{minutes:00}:{seconds:00}.{hundredthsofASecond:00}";
}

答案 1 :(得分:0)

为了您的用户的利益&#39;理智,我建议您将时间显示为mm:ss.ss,其中显示小数点后两位的秒数。

这样做:

public static string ConvertToTime(float t)
{
    return string.Format("{0:00}:{1:00.00}", t/60, t%60);
}