我想显示一个表示计时器的浮点数,我试图将其格式化为:
<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。
这是一个基本的东西,但是在使用时间跨度时我无法解决它。
答案 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);
}