尽管 worksheet.xml 和 styles.xml 中没有存储有关小数精度的信息,但 Excel 如何正确显示小数值?

How does Excel show decimal values correctly although no information is stored in the worksheet.xml and styles.xml about the precision of the decimal?

以下是我检查行为所遵循的步骤:

1# 创建一个Excel(xlsx)文件,将1234.56789放在一个单元格中,保存。
2# 提取.xlsx文件,查看sheet1.xml和styles.xml文件。

在 xl/worksheets/Sheet1.xml 您将看到以下内容:

<sheetData><row r="1" spans="1:1" x14ac:dyDescent="0.25"><c r="A1" s="1"
<v>25778.567889999998</v>
</c></row></sheetData>

并且 Styles.xml 中没有关于原始数字精度的信息,即 1234.56789

Excel在MS中打开时如何显示原始值Excel?
尽管提取的文件中没有信息,它如何重建原始数字?

请注意,我没有更改单元格格式类型或任何内容,因此单元格格式为常规。

我知道因为 Excel 将数字存储为浮点数,它无法将值保存到完美的准确性,我无法理解的是当我在 MS 中打开它时它如何保留原始值Excel。我遇到了有关使用 OpenXML SDK 读取 Excel 文件的问题,但在询问该问题之前,我正在寻找这个更基本问题的答案。

它只是将输入精度限制为 15 位,例如尝试将 25778.567889999955 放入单元格中,并看到它立即(在 Excel 本身)转换为 25778.5678899999 并且 1.23456789123456789 变为 1.23456789123456。有关数字表示内部及其如何影响计算的更多详细信息,请参阅 this wonderful wikipedia article