惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
V
Visual Studio Blog
博客园 - 叶小钗
A
About on SuperTechFans
Last Week in AI
Last Week in AI
量子位
博客园 - 三生石上(FineUI控件)
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MongoDB | Blog
MongoDB | Blog
T
The Blog of Author Tim Ferriss
Vercel News
Vercel News
博客园 - 司徒正美
博客园 - Franky
博客园 - 【当耐特】
月光博客
月光博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Apple Machine Learning Research
Apple Machine Learning Research
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
J
Java Code Geeks

Excel

请教一下大家,如果有几万行数据和几万张图片需要处理和浏览,有什么能替代 excel 的方案吗? 有哪位 excel 大神知道,如何在 excel 中对单元格内的多行文本内容进行逐行编号 如何计算不同列金流的 XIRR? 单元格内数据去重 纯分享 解决工作难题 我有个数据分析的需求,全都是带公式的 EXCEL excel 类型的数据转换成什么来处理好? MacOS VBA 总是出现“宏被禁止或不可用”的提示。 ms excel 中的 Internet Explorer 被禁用该怎么解决,求助 Excel 自带函数连 Map, Reduce 都有了 Excel“名称管理器”定义了很多名称,现在全部删除掉,但是公式引用了很多自定义名称 多个 Excel 文件和 word 文件如何批量替换? excel 一点击超链接就卡死 怎么解决 excel 一个单元格能存多少字节的数据呢 有没有 Excel 编程相关的站点或经验? 所以 2019 版安全模式的窗口外加 2013 的透视表就是新一代 UI? 飞书的 excel 的共享文档,如何复制下来? Office365 的 Excel 居然有专属函数。。。一般版本用不了 请教 Excel 数据量大的时候 XLOOKUP 和 INDEX&MATCH 哪个更省资源? excel 一次只能显示 2 行表格内容,鼠标滚轮一次滚 3 行内容,有解决方案吗? 两个 EXCEL 表格怎么合并数据 excel 滚动可以按像素滚动吗? 微软新推出的`XLOOKUP`真的好用! 一种 EXCEL(结构化数据)导入 SQLite 统计方法的实践分享 Excel 两表比对功能求助 [求助] 一个关于 Excel 的统计问题 求助: excel 中如何实现选中一个单元格后立即粘贴剪切板内容 excel 如何批量拖拽 求教一个 EXCEL 问题:如何在 excel 中可以实现根据单元格(cell)中的关键字匹配对应的关键字
遇到一个头疼的 Excel 精度问题
messiah163 · 2025-02-08 · via Excel

遇到一个 Excel 数值精度问题,求大佬们解析

今天在处理 Excel 文件时发现了一个有趣的现象。看下面两张图:

  1. Excel 界面显示的数据:
A 列 B 列
4239.26 224789.77
4239.26 220550.51
128753.34 91797.17
90000 1797.17
1797.17 -1.63709E-11
4239.26 224789.77
4239.26 220550.51
128753.34 91797.17
91797.17 0

如图 1: [pEmUrzq.png](图 1:减出来不等于 0)

如图 2: [pEmUyQ0.png](图 2:减出来等于 0 了)

  1. 但当我查看这个 Excel 文件的 XML 源码时:
	<row r="2" spans="1:2" ht="18"><c r="A2" s="1"><v>4239.26</v></c><c r="B2" s="1"><v>224789.77</v></c></row>
	<row r="3" spans="1:2" ht="18"><c r="A3" s="1"><v>4239.26</v></c><c r="B3" s="1"><f>B2-A3</f><v>220550.50999999998</v></c></row>
	<row r="4" spans="1:2" ht="18"><c r="A4" s="1"><v>128753.34</v></c><c r="B4" s="1"><f>B3-A4</f><v>91797.169999999984</v></c></row>
	<row r="5" spans="1:2" ht="18"><c r="A5" s="1"><v>90000</v></c><c r="B5" s="1"><f>B4-A5</f><v>1797.1699999999837</v></c></row>
	<row r="6" spans="1:2" ht="18"><c r="A6" s="1"><v>1797.17</v></c><c r="B6" s="1"><f t="shared" ref="B6" si="0">B5-A6</f><v>-1.6370904631912708E-11</v></c></row>
	<row r="7" spans="1:2" ht="18"><c r="A7" s="1"/><c r="B7" s="1"/></row>
	<row r="8" spans="1:2" ht="18"><c r="A8" s="1"/><c r="B8" s="1"/></row>
	<row r="9" spans="1:2" ht="18"><c r="A9" s="1"><v>4239.26</v></c><c r="B9" s="1"><v>224789.77</v></c></row>
	<row r="10" spans="1:2" ht="18"><c r="A10" s="1"><v>4239.26</v></c><c r="B10" s="1"><f>B9-A10</f><v>220550.50999999998</v></c></row>
	<row r="11" spans="1:2" ht="18"><c r="A11" s="1"><v>128753.34</v></c><c r="B11" s="1"><f>B10-A11</f><v>91797.169999999984</v></c></row>
	<row r="12" spans="1:2" ht="18"><c r="A12" s="1"><v>91797.17</v></c><c r="B12" s="1"><f>B11-A12</f><v>0</v></c></row>
	<row r="13" spans="1:2" ht="18"><c r="A13" s="1"/><c r="B13" s="1"/></row>
	<row r="14" spans="1:2" ht="18"><c r="A14" s="1"/><c r="B14" s="1"/></row>
	<row r="15" spans="1:2" ht="18"><c r="A15" s="1"/><c r="B15" s="1"/></row>
	<row r="16" spans="1:2" ht="18"><c r="A16" s="1"/><c r="B16" s="1"/></row>

如图 3: [pEmaplt.png](图 3 、xml 细节)

问题在于:

  1. Excel 界面上显示的数值看起来很"干净",但 XML 中却带着一串额外的小数位
  2. 特别是 91797.17 这个数,在 XML 中实际是 91797.169999999984
  3. 最后的-1.63709E-11 ,在 XML 中是更精确的-1.6370904631012788E-11

这引发了几个问题:

  1. Excel 为什么要在 XML 中保存这么高的精度?
  2. 这些额外的精度是从哪里来的?是计算过程中产生的?
  3. 为什么界面显示和 XML 存储的精度不一致?
  4. 这种精度差异会在实际应用中造成什么影响?

欢迎各位大佬一起讨论。我个人猜测这可能跟 Excel 内部的数值表示方式有关,但具体细节还请懂行的来解释下。 Excel 文件: 文件链接: https://file.uhsea.com/2502/a971d24a402a2e08fd5873d3b0788ae925.xlsx