首页 > 解决方案 > Excel不正确的小数计算百分之一

问题描述

我遇到了一个非常奇怪的问题,该问题与以 2 位小数(即美分)输入的值有关

我想将百分之一表示为整数——因此输入的 2.01 将计算为 1(1 美分),3.05 将计算为 5(5 美分)。很简单,我想。

好吧,我使用的公式 =INT((A1-INT(A1))*100) 适用于 1.01,但不适用于 2.01。我最终得到的值必须是一个整数(不仅仅是显示为一个),因此它周围有额外的 INT。

在深入研究时,我注意到如果您只是在 a1 中输入 1.01,在 b1 中输入 1,然后在 c1 中输入公式 A1-b1,然后将其格式化为 16 位或更多小数位,它将显示不等于的值当 a1 和 b1 改变时为 0.0100000000000000。如果您将 a1 更改为 2.01 并将 b1 更改为 2,则会显示 0.0099999999999998 。为什么 Excel 不能正确处理精度并将所有这些十进制值添加到直接输入的 #s,例如 2.01 - 2?这发生在 Excel 2016 和 Excel 2013 中(至少)。

标签: excelexcel-formula

解决方案


你的公式:

=INT((A1-INT(A1))*100)

正在工作,但它可能无法提供您期望的值。考虑:

在此处输入图像描述

在A22之前一切看起来都很好。它似乎是 2.01,但那是因为它被格式化为 2 个位置。实际值显示在公式栏中。

该公式对公式栏值进行运算,并返回小数点后的双零。

您可能更喜欢以下内容:

=ROUND((A22-INT(A22))*100,0)

这会给你1。


推荐阅读