C# 如何将timespan方法转换为十进制?

C# 如何将timespan方法转换为十进制?,c#,C#,这是我的密码: TimeSpan span1 = TimeSpan.FromHours(dtmIn.Value.Hour); TimeSpan span2 = TimeSpan.FromHours(dtmOut.Value.Hour); TimeSpan span3 = TimeSpan.FromMinutes(dtmIn.Value.Minute); TimeSpan span4 = TimeSpan.FromMinutes(dtmOut.Value.Minute); TimeSpan spa

这是我的密码:

TimeSpan span1 = TimeSpan.FromHours(dtmIn.Value.Hour);
TimeSpan span2 = TimeSpan.FromHours(dtmOut.Value.Hour);
TimeSpan span3 = TimeSpan.FromMinutes(dtmIn.Value.Minute);
TimeSpan span4 = TimeSpan.FromMinutes(dtmOut.Value.Minute);
TimeSpan span5 = span2.Subtract(span1) + span4.Subtract(span3);

lblTotal.Text = Convert.ToDecimal(span5).ToString("#.00");

最后一行出现格式错误。显然,我可以让标签作为时间返回,但我需要它作为十进制返回。

TimeSpan
转换为十进制是没有意义的,因为时间不是数字


您可能需要
span5.TotalHours
,它是一个包含小数部分的
双精度

小数点应该代表什么?小时和一小时的分数?您必须了解,
TimeSpan
无法推断出这一点,因为
TimeSpan
可能跨越毫秒或千年

如果事实上是小时和小时分数,则:

lbTotal.Text = span5.TotalHours.ToString("#.00");

代表什么的十进制数?秒,分,小时?是的,一小时的分数。我基本上是在计算员工的工资。我想知道如何转换成十进制形式,而不是乘以小时工资,然后在标签上以货币形式返回。啊,下次试着更具体一些。对于您的情况,我将使用类似于:decimal amount=Math.Round(span5.TotalHours*rate,2);然后用您想要的格式打印出来,比如String.Format(“{0:C}”,amount);我想转换成十进制数,然后乘以一个数字。我试图以十进制的小时数计算工资,然后乘以小时工资。明白了吗?那么你想要的是
TotalHours
,就像我怀疑的那样。好吧,那么乘以3并以货币形式返回标签合适吗?你是在问我如何将一个数字乘以
3
?我如何将结果乘以3并以货币形式返回标签?