zoukankan      html  css  js  c++  java
  • [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 位)永久更改为所显示格式的精度(包括小数位数)”。话有点怪,估计是翻译的问题,我觉得简单地讲就是“使用单元格的显示结果进行计算”。

  • 相关阅读:
    The connection to adb is down, and a severe error has occured.问题解决
    JavaScript的实现
    Dreamer2.1 发布 新增将Bean解析成xml和json
    由某公司的面试小题目说起,对责任链模式的总结
    TCP协议中的SO_LINGER选项
    杭电2602(01背包问题)——第一次做背包问题的理解
    [置顶] 浏览器模式和标准对于javascript的影响
    李克强总理坚决不“救市”底气何来?
    lua序列化table表到文件中
    获取java byte的无符号数值
  • 原文地址:https://www.cnblogs.com/pandabang/p/14668292.html
Copyright © 2011-2022 走看看