弗雷德在减去某些数字时对收到的结果表示困惑和担忧。例如,当他从3799904.94减去3809717.98时,他应该得到-9813.04,而得到-9813.04000000003。

Fred目睹的是Excel局限性的产物。问题最终与Excel如何使用浮点数有关。计算机必须在内部将数字存储为二进制值,而不是我们在屏幕上看到的十进制值。整数可以相对容易地存储为二进制值。当您将小数点加到混合中时,存储非常大或非常小的数字会变得更加困难-Excel只是无法以绝对精度存储它们。而是,Excel提供了一个“近似”结果,最多15位(其精度的极限)。因此,您最终得到-9813.04000000003之类的内容,其中包含Excel中可能的全部15位精度。

全面讨论如何在Excel和一般的计算机中维护浮点数会很快变得非常技术化。对于需要有关该主题的更多信息的人,可以在以下两个地方开始研究:

http://support.microsoft.com/?kbid=78113 http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html

最重要的是,要获得想要的“精确”结果(要达到小数位数)的唯一方法是在公式中使用ROUND函数,如下所示:

=ROUND(3799904.94 - 3809717.98, 2)

如果需要,还可以按照以下步骤更改所有公式中使用的精度:

。显示“ Excel选项”对话框。 (在Excel 2007中,单击Office按钮,然后单击Excel选项。在Excel 2010或更高版本中,显示功能区的“文件”选项卡,然后单击“选项”。)

。在对话框的左侧,单击“高级”。

。滚动浏览可用的选项,直到找到标题为“计算此工作簿时”的部分。 (请参见图1。)

。确保选中设置显示精度为复选框。

。单击确定。

现在,Excel在其所有计算中都使用屏幕上显示的精度,而不是使用通常保持的全15位精度进行计算。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(6176)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处找到适用于Excel的较旧菜单界面的本技巧的版本: