C# TimeSpan 给出与预期不同的结果

C# TimeSpan giving different results than expected

这是一个简单的任务,却变成了一个令人困惑的情况。

2:20 分钟,像这样放置 TimeSpan(0,2,20) 然后 TimeSpan.TotallSeconds 给你 140 秒

但是当你做同样的计算时 TimeSpan.FromMinutes(2.20).TotalSeconds 它给出 132.

Google 和其他转换器也给出 132。所以我认为这是正确答案。

但是当你这样计算时 2 min = 120 sek + 20 sek 就是 140 sek。

这是一个错误吗? 那么哪一个是正确的?

"2:20 min when placed in like this TimeSpan(0,2,20) and then TimeSpan.TotallSeconds gives you 140 seconds"

正确。您将 0 小时 2 分钟 20 秒传递给构造函数。由于一分钟是 60 秒,因此跨度中的总秒数是 60 + 60 + 20 = 140.

"But when you do the same calculation TimeSpan.FromMinutes(2.20).TotalSeconds it gives 132"

2.20 表示“二又十分之二”(可以忽略小数点后的尾随零,就像忽略小数点前的前导零一样)。那么,十分之一分钟等于多少秒?好吧,因为一分钟有 60 秒,所以十分之一是 6 秒;因此 2 60 秒的十分之一是 12 秒。

所以现在我们有 60 + 60 + 12 = 132 秒的跨度。


这里没有错误,只是对 2.20 应用于分钟时的含义的误解。