Excel 当我使用if语句时,计算出现了奇怪的问题

Excel 当我使用if语句时,计算出现了奇怪的问题,excel,excel-formula,Excel,Excel Formula,所以我有一张excel表格,它看起来如下:(我把所有相关信息都拿出来了) 列D是一个已向下拖动到所有单元格的公式(更改行号): =如果(A2=”,$D1-C2,A2-C2) 如果您看到单元格D6,您会注意到它有某种错误。我举了两个例子。表的下半部分使用相同的公式工作正常。第一部分不起作用,我假设它是因为0.985,它似乎只有在高于0.9但低于1时才会发生 有人能帮忙找出问题所在吗?这不是错误,这是科学符号。它显示的值是3.33*10^(-16),或者0.00000000000000333067

所以我有一张excel表格,它看起来如下:(我把所有相关信息都拿出来了)

D
是一个已向下拖动到所有单元格的公式(更改行号):

=如果(A2=”,$D1-C2,A2-C2)

如果您看到单元格
D6
,您会注意到它有某种错误。我举了两个例子。表的下半部分使用相同的公式工作正常。第一部分不起作用,我假设它是因为0.985,它似乎只有在高于0.9但低于1时才会发生


有人能帮忙找出问题所在吗?

这不是错误,这是科学符号。它显示的值是
3.33*10^(-16)
,或者0.00000000000000333067(希望我算对了)


这基本上是一个舍入误差。如果希望列显示接近零的值的零,则将列格式化为小数位数有限的数字

这不是错误,这是科学记数法。它显示的值是
3.33*10^(-16)
,或者0.00000000000000333067(希望我算对了)


这基本上是一个舍入误差。如果希望列显示接近零的值的零,则将列格式化为小数位数有限的数字

看起来像是浮点数的舍入错误(有关更多信息,请参阅)。您可以通过在某些小数位数上使用
舍入
来解决此问题,例如:。
四舍五入(D6,3)
将D6四舍五入到小数点后3位以获得更好的精度,如果您需要的话。

看起来像是浮点数的四舍五入错误(有关更多信息,请参阅)。您可以通过在某些小数位数上使用
舍入
来解决此问题,例如:。
四舍五入(D6,3)
将D6四舍五入到小数点后3位,以获得更高的精度,如果这是您需要的。

是的,对不起,我的意思是它的输出是错误的(不要将E误认为错误),因为它肯定应该是一致的?将其格式化为数字的问题是,我有其他引用该单元格和VBA的公式,我想我也必须在这些公式中加入某种舍入?或者,当我在VBA中引用它时,它是否接受格式化的单元格值?是的,对不起,我的意思是它在输出时出错(没有将E误认为错误),因为它肯定应该是一致的?将其格式化为数字的问题是,我有其他引用该单元格和VBA的公式,我想我也必须在这些公式中加入某种舍入?或者,当我在VBA中引用它时,它是否接受格式化的单元格值?有趣的四舍五入的事情正在发生。如果所有的1都正好是1,.985正好是.985,并且错误仍然出现,考虑到它的大小,我会用舍入(,0)将D列四舍五入到最接近的整数。有趣的是,正在进行舍入。如果所有的1都正好是1,.985正好是.985,并且错误仍然出现,考虑到它的大小,我只会用round(,0)将D列四舍五入到最接近的整数。我想可能是这样的。只是有点犹豫,因为它有超过300000条记录需要在不同的文件中更改,因为我工作的公司没有任何命名约定。谢谢你的回答。我想可能是这样的。只是有点犹豫,因为它有超过300000条记录需要在不同的文件中更改,因为我工作的公司没有任何命名约定。谢谢你的回答。