• [MS Office Excel] 计算结果不正确


    造冰箱的大熊猫,适用于Microsoft Office Excel 2007@cnblogs 2021/4/16

     

    1、问题

    先看一个例子:

    1)打开Excel,创建一个新表格,如下图所示(鼠标右键点击图片选择看大图,下同),B9输入3,C9输入72.6655,D9输入“=B9*C9”,回车后D9显示217.9965,此为正确的计算结果。

    2)再创建一组相同的计算(如下图中绿色所示)。将C13和D13的格式修改为货币(右键点击表格中的单元,选择“设置单元格格式(F)...>>数字>>分类>>货币”)。此时,C13显示为“¥72.67”,D13显示为“218.00”,不对啊,D13少了0.01

    3)创建第三组计算(如下图中红色所示)。将C17和D17的格式修改为货币,且小数点后显示3位,此时的结果又是正确的。

     

    2、产生问题的原因

    实际上,导致第二组计算结果异常的原因是当设置C13为货币模式后,显示数值时Excel自动进行了四舍五入(72.6655≈72.67)。而D13是先计算B13×C13,再四舍五入显示(217.9965≈218.00)。因此看上去似乎是3×72.67的结果为218.00,莫名少了0.01。

     

    3、解决问题的方法

    针对这种问题,实际上Excel已经提供了解决方法:

    1)点击Excel左上角的Office图标,选择“Excel选项”。

    2)在Excel选项对话框中,选择“高级”,在“计算此工作簿时”下方选中“将精度设置为所显示精度”。

    3)点击“确定”,返回工作簿界面,此时D13的显示结果已经为218.01。操作截图及设置后的工作簿截图如下图所示。

    在Office帮助中,“将精度设置为所显示的精度”选项的解释为“将单元格中存储值的全精度(15 位)永久更改为所显示格式的精度(包括小数位数)”。话有点怪,估计是翻译的问题,我觉得简单地讲就是“使用单元格的显示结果进行计算”。

  • 相关阅读:
    [转]Xml Schema
    设计模式之Observer Pattern
    通过 C# 使用 J# 类库中的 Zip 类压缩文件
    An extender can't be in a different UpdatePanel than the control it extends
    关于AutoResetEvent和ManualResetEvent
    ref, out参数区别
    取整, 无条件进位, 无条件取整
    VB.NET语法基础
    XP防火墙,挡掉访问自己的IIS
    maybe useful for Add the solution to source control
  • 原文地址:https://www.cnblogs.com/pandabang/p/14668292.html
Copyright © 2020-2023  润新知