Timespan.FromHours进行十进制转换

问题描述 投票:1回答:1

我正在使用TimeSpan.FromHours(9.30),它给出的是“ 09:18:00”,如果我使用TimeSpan.Parse("09:30"),它将返回09:30。两者相同,但是TimeSpan.FromHours更安全,更有效。

请告知为什么结果不同?

谢谢,

c# timespan
1个回答
1
投票

FromHours是格式为[h.mm]的not,它是小时的分数。

所以您想要TimeSpan.FromHours(9.5)(请考虑“ 9个半小时”)

另请参见:TimeSpan.FromHours(Double)

注意:虽然FromHours取双精度,但只能精确到最近的毫秒

[TimeSpan.Parse(String)需要一个时间间隔(抬头:取决于系统区域性*)),所以在这里您有例如“ 09:30”实际上是9小时30分钟。

*)“依赖于系统文化”表示:“ 5.123”在美国文化中为5秒(123毫秒),但是在使用“,”作为小数点分隔符的文化中会抛出异常。有关详细信息,请参见链接的文档。


1
投票

FromHours是格式为[h.mm]的not,它是小时的分数。

所以您想要TimeSpan.FromHours(9.5)(请考虑“ 9个半小时”)

另请参见:TimeSpan.FromHours(Double)

注意:虽然FromHours取双精度,但只能精确到最近的毫秒

[TimeSpan.Parse(String)需要一个时间间隔(抬头:取决于系统的文化*)),因此在这里,例如,“ 09:30”实际上是9小时30分钟。

*)“依赖于系统文化”表示:“ 5.123”在美国文化中为5秒(123毫秒),但是在使用“,”作为小数点分隔符的文化中会抛出异常。有关详细信息,请参见链接的文档。

© www.soinside.com 2019 - 2024. All rights reserved.