时间之间的Excel返回相同范围内的不同值

我使用Excel来计算时间之间的总分钟数。

我的计算公式如下: =INT((M3-L3)*1440)

 Time1 Time2 Minutes 5.1.2016 21:00:00 5.1.2016 22:00:00 59 5.1.2016 22:00:00 5.1.2016 23:00:00 60 

第一个结果是59,第二个结果是60。

这里有什么问题?

Excel内部将date/时间值表示为双精度浮点数。 整数部分表示一天。 小数部分表示时间。 浮点数有一个有限的精度(大约15个重要的基数10位)。 这意味着某些数字不能精确地表示,这会导致小的近似误差,从而导致意想不到的结果。

在你的例子中,第一个计算是作为…

 =INT((5.1.2016 21:00 - 5.1.2016 22:00)*1440) =INT((42491.875-42491.9166666667)*1440) =INT(0.041666666664241*1440) =INT(59.9999999965975) =59 

第二个计算是作为…

 =INT((5.1.2016 22:00 - 5.1.2016 23:00)*1440) =INT((42491.9166666667-42491.9583333333)*1440) =INT(0.041666666664241*1440) =INT(60.0000000069849) =60 

这是浮点math的一个限制。

在这种情况下,用ROUND(number,0)或MROUND(number,1)replaceINT(number)