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

  • 相关阅读:
    C#小常识集锦(一)《更锋利的CSharp代码》读书笔记
    QueryBuilder 优雅的Linq To SQL动态查询(转)
    了解 NoSQL 的必读资料
    微软报表
    linq to sql 中,如何解决多条件查询问题,答案,用表达式树! (下)
    LINQ体验(17)——LINQ to SQL语句之动态查询
    细数那些运行在微软平台上的NoSQL数据库
    5道经典的程序题
    打造自己的LINQ Provider(中):IQueryable和IQueryProvider (转 李会军)
    Expression Examples :Report Builder
  • 原文地址:https://www.cnblogs.com/pandabang/p/14668292.html
Copyright © 2011-2022 走看看