我在单元格A1和B1中放了两个日期时间值。日期时间恰好是41703.0416666667。一个是从SQL数据库中输出另一个手动编写的。
= if(A1 = B1,1,0)的结果为1。 = MATCH(B1,A1,0)的结果是#N / A.
有没有人知道为什么会这样?
答案 0 :(得分:1)
将十进制转换为二进制可能是个问题。见相关答案:
Simple HLOOKUP Failing with Excel 2010
这似乎是以二进制形式存储浮点数的限制 - 如下所述:http://support.microsoft.com/kb/214118
浮点数的许多算术运算组合 在Microsoft Excel和Microsoft Works中可能会生成显示的结果 非常少量的错误。例如,等式 = 1 *(。5-.4-.1)可以评估为数量(-2.78E-17),或者-0.0000000000000000278而不是0。
此问题不是excel独有的,而是由以下结果:
IEEE 754规定数字以二进制格式存储以减少 存储要求并允许内置二进制算术 所有微处理器都可以使用的指令来处理 数据以相对快速的方式进行。但是,有些数字是 简单的非重复十进制数转换为重复数 二进制数不能以完美的精度存储。
答案 1 :(得分:0)
问题在于浮点计算(请参阅http://support.microsoft.com/kb/78113),一种可能的解决方法是使用round()
函数。在您的情况下,舍入到10或12位小数可能足以解决该问题。