EXCEL中LEN返回的奇数值
例如,考虑某些单元格中的以下函数字符串:EXCEL中LEN返回的奇数值,excel,function,precision,Excel,Function,Precision,例如,考虑某些单元格中的以下函数字符串: A1=B1-INT(B1) A2=LEN(A1) A2将返回17,而与A1中的函数返回的值无关。我怀疑这与INT(B1)返回的精度有关,但我对Excel的内部机制了解不够,无法确认 最终目标是获得保存在B1中的数字的小数部分的长度。例如,如果B1=978.01194,A2将保持5(LEN(01194))。显然,在我上面的实现中,这需要减去2来消除前导(0.)的计数,但这是假设我可以用这种方法得到正确的结果。任何其他方法的帮助或指导将不胜感激 编辑:我意识
A1=B1-INT(B1)
A2=LEN(A1)
A2
将返回17,而与A1
中的函数返回的值无关。我怀疑这与INT(B1)
返回的精度有关,但我对Excel的内部机制了解不够,无法确认
最终目标是获得保存在B1
中的数字的小数部分的长度。例如,如果B1
=978.01194,A2
将保持5(LEN(01194)
)。显然,在我上面的实现中,这需要减去2来消除前导(0.)的计数,但这是假设我可以用这种方法得到正确的结果。任何其他方法的帮助或指导将不胜感激
编辑:我意识到只有当我减去这两个量时,才会失去正确的精度
INT(B1)
返回正确的精度,使用其长度,我可以从原始值中减去小数仍想知道是什么原因导致A1
中的操作在内部对LEN
失去精度 备选方案是使用非计算结果的数字:
= LEN(B1) - LEN( INT(B1) ) - 1
或将数字四舍五入至小于:
备选方案是使用非计算结果的数字:
= LEN(B1) - LEN( INT(B1) ) - 1
或将数字四舍五入至小于:
另一种方法是
查找
小数点所在的位置,并将其用作偏移量,例如
= LEN(B1)-FIND(".",B1)
一般来说,当你真正感兴趣的是代表数字的文本时,对数字进行数学运算是不明智的。浮点对于处理精确性不是很可靠,这就是为什么在这种情况下,小数点后会出现额外的尾随数字。另一种选择是
查找小数点所在的位置,并将其用作偏移量,例如
= LEN(B1)-FIND(".",B1)
一般来说,当你真正感兴趣的是代表数字的文本时,对数字进行数学运算是不明智的。浮点数在处理精确性方面不是很可靠,这就是为什么在本例中,小数点后会出现额外的尾随数字