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

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

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

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

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

=ROUND(3799904.94 - 3809717.98, 2)

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

。从工具菜单中选择选项。 Excel将显示“选项”对话框。

。确保显示了计算选项卡。 (请参见图1。)

。确保选中“显示精度”复选框。

。单击确定。

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

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

本技巧(3354)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: