尽管 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。
以下是我检查行为所遵循的步骤:
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。