我使用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.
这里有什么问题?
答案 0 :(得分:3)
Excel在内部将日期/时间值表示为双精度浮点数。整数部分代表日期。小数部分代表时间。浮点数具有有限的精度(大约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
这是浮点数学的限制。
在这种特定情况下,您可以通过将INT(数字)替换为ROUND(数字,0)或MROUND(数字,1)来获得所需的结果