C#:如何将TimeSpan值转换为double?
可以使用的String.Format,然后分析它是这样的:
double.Parse(string.Format("-HH.mm"))
在家里不要重复这个!
double value = (timeSpan.Hours + timeSpan.Minutes/100.0 + timeSpan.Seconds/10000.0) * (timeSpan > TimeSpan.Zero ? 1 : -1);
这是不准确的,因为它会忽略 – 2013-04-27 14:00:44
@UmarFarooqKhawaja不是'小时',实际上 – VMAtm 2017-03-21 16:54:24
的确,@VMAtm! – 2017-03-28 19:43:19
尽管这个问题有多么模棱两可,为了将来的参考,奥马尔可能是最接近回答这个问题的,因为它在标题中显示。
要从TimeSpan
对象中获得double
对象,您需要选择最重要的测量值并获取总和。由于Total<x>
属性将返回相应的完整值,并将该值的分数作为小数返回。
所以,如果你想8:15:00
,到double
- 和"8"
代表Hours
,那么你会希望TimeSpan.TotalHours
这将导致8.25的数值。
如果"8"
代表Minutes
,那么您将再次使用适当的属性TimeSpan.TotalMinutes
获得相同的结果,依此类推。
感谢您的快速参考,我想知道OP是否因-08:15:00到-08.15的转换错误而被低估而不是-0.8.25,这个问题本身就是合法的。如果你正在制作一个系统,供图书管理员根据你工作的多少来管理工资,你需要这样的东西。 – 2014-10-08 20:30:59
你为什么要这么做? 8分15秒*不等于8.15分钟。 – 2013-04-27 13:58:21
@KirkWoll:像22.3946那样代表22°39'46“这样的角度并不是闻所未闻的,所以也许这就是OP所要求的。 – Gabe 2013-04-27 14:11:53
所有事情都考虑到了,你的问题最好是模棱两可的。是8:15:00 h/m/s,还是m/s/ms?是否真的意味着8:15:00 - > 8.15,还是应该是8:15:00 - > 8.25? – 2014-09-29 08:57:54