float表示小时到小时:分钟:秒使用c#

Mir*_*aig 0 c# double timespan

我需要将表示小时的浮点数转换为小时:分钟:秒.

如何使用C#实现这一点.

目前我正在将这个5.4898391027272906浮动小时转换为小时分钟和秒,我得到的结果只有几小时和几分钟而不是秒.

以下是我的代码:

double time = 5.4898391027272906;
double hours = Math.Floor(time);
double minutes = Math.Floor(time * 60 % 60);
double seconds = Math.Floor(time * 360 % 360);
Run Code Online (Sandbox Code Playgroud)

结果:小时= 5,分钟= 29,秒= 176

但我希望在60秒之间获得一秒钟.

Son*_*nül 6

使用TimeSpan.FromHours方法怎么样?

var ts = TimeSpan.FromHours(5.4898391027272906);
Console.WriteLine(ts.Seconds); // 23
Run Code Online (Sandbox Code Playgroud)

不要对时间间隔使用某些整数计算.这正是TimeSpan为了什么.

顺便说一句,你的代码甚至不会编译.如果没有任何后缀,你5.4898391027272906double不会float,也没有隐含的话题从doublefloat.你需要使用fF后缀.并且此TimeSpan.FromHours方法double不作为参数float.