Excel公式计算小数位数

Posted

技术标签:

【中文标题】Excel公式计算小数位数【英文标题】:Excel formula for count numbers of decimals 【发布时间】:2017-07-20 08:59:23 【问题描述】:

我需要计算一个数字的小数位数。

A1 单元格值为:

    123456.78.

B1中的公式为:

    =LEN(MOD(A1,1))

MOD(A1,1)的结果是:

 0.78

我预计 LEN 为 4 (LEN(0.78)=4)。 Excel 公式计算出 17,因为论坛返回:

0.779999999998836

我应该尝试不同的方法吗?例如寻找分隔符?

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

【问题讨论】:

我觉得这有点令人困惑 - 您想计算单元格 value 中的小数位数,即 15(加上 0。)。 显示的文本 有 4 个字符长(0. 和 2 个小数位)。如果您希望它为 2 位小数,则可以使用 =ROUND(A1,2)=TEXT(A1,"0.00")。或者您可以创建一个命名范围为=GET.CELL(53,A1),它将显示所显示的值,您可以在其上使用LEN 函数返回4。 【参考方案1】:

试试这个:

=LEN(RIGHT(A1;LEN(A1)-FIND(",";A1)))

管理非小数条目和不同小数分隔符的更好公式:

=IF(ISNUMBER(FIND(".";A1));LEN(A1)-FIND(".";A1);IF(ISNUMBER(FIND(",";A1));LEN(A1)-FIND(",";A1)))

【讨论】:

我使用公式的修改版本来检查它是否是一个数字(感谢link : 'IF(ISNUMBER(FIND(".",A1)),LEN(A1)-FIND (".",A1),0)'. 如果数字不包含小数,您的公式将返回错误。 是的,我添加了一个细化,因此分隔符可以是“,”或“。” 处理错误=IFERROR(LEN(RIGHT(A1;LEN(A1)-FIND(",";A1)));0)如果没有小数会返回0【参考方案2】:

我看到 Len 函数由于某种原因导致数学函数返回不正确的值(Len(Mod(123456.78, 1)) 返回 17 而不是 4,而 Len(Mod(6.78,1) 正确返回 4 )。

在计算长度之前,您可以将 TEXT 函数添加到公式中以将其更改为文本,格式为“常规”以保留小数精度:LEN(TEXT(MOD(A1,1), "General"))

对于那些想要使用它来计算不带前导“0”的小数位数的人,只需从结果中减去 2。

【讨论】:

以上是关于Excel公式计算小数位数的主要内容,如果未能解决你的问题,请参考以下文章

【MySQL】保留2位小数相关函数

R语言:小数点位数的设置

EXCEL表格中,怎么把一列数字做除法,保留小数点两位?

如何在excel中保留小数点后两位

Python:format函数控制输出的小数点位数

如何设置excel里的数字有小数的显示小数,没有小数的直接不显示小数点?(自适应显示小数位数)