使用Excel计数十进制位置会产生奇怪的结果



我试图使用简单的公式=LEN(A1-INT(A1))-2来计数小数位置。单元格 A1被形成为Standard,并包含例如值100.000739

我不明白为什么公式返回18而不是6?

=A1-INT(A1)               ==> returns 0.000739 which is fine
=LEN(A1-INT(A1))-2        ==> returns 18 
=LEN(0.000739)            ==> returns 8 which is fine

即使我将单元格式化为具有6个小数位置的数字,该公式仍然返回18.任何想法?


使用的版本Microsoft Excel 2013

len返回字符串的长度。A1-INT(A1)是一个数字,而不是字符串。

尝试

=T(A1-INT(A1)

并将其与

进行比较
=LEN(T(A1-INT(A1)))

这样,您可以看到Len真正使用的值。

这对我有用:

=LEN(A1)-FIND(".",A1)

如果您在A列中有一些整数,那么您将遇到错误,因为查找将无法找到小数点。如果A列中的值是整数,并且在这种情况下返回" 0",则可以通过首先测试来解决该问题,例如:

=IF(A1=INT(A1),0,LEN(A1)-FIND(".",A1))

最新更新