float使用c#

时间:2015-05-06 07:29:13

标签: 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);
  

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

但我想在60秒之间得到一秒钟。

2 个答案:

答案 0 :(得分:6)

如何使用TimeSpan.FromHours方法?

var ts = TimeSpan.FromHours(5.4898391027272906);
Console.WriteLine(ts.Seconds); // 23

不要对时间间隔使用一些整数计算。这完全 TimeSpan的用途。

顺便说一下,你的代码甚至不会编译。如果没有任何后缀,您的5.4898391027272906double而不是float,并且doublefloat之间没有隐含的对话。您需要使用fF后缀。此TimeSpan.FromHours方法将double作为参数,而不是float

答案 1 :(得分:0)

你的原始方法不起作用,因为一小时有3600秒,而不是360,并且因为使用模数这样无论如何都不起作用!您可以从分钟获得秒数,例如29.39分钟* 60%60 = 23.4秒。