以下是我检查行为的步骤:
1#创建一个Excel(xlsx)文件,将1234.56789放入单元格中,保存。
2# 解压缩.xlsx文件,参见 sheet1.xml 和样式.xml文件。
在xl/工作表/工作表1中.xml您将看到以下内容:
<sheetData><row r="1" spans="1:1" x14ac:dyDescent="0.25"><c r="A1" s="1"
<v>25778.567889999998</v>
</c></row></sheetData>
并且样式中没有关于原始数字精度的信息.xml这是1234.56789
的。
当我们在MS Excel中打开原始值时,Excel如何显示原始值?
尽管提取的文件中没有信息,但它如何重建原始数字?
请注意,我没有更改单元格格式类型或任何东西,因此单元格格式为常规。
我知道,由于Excel将数字存储为浮点数,因此无法将值保存为完美的精度,我不明白的是当我在MS Excel中打开该值时它如何保留原始值。我面临着有关使用 OpenXML SDK 读取 Excel 文件的问题,但在询问该问题之前,我正在寻找这个更基本问题的答案。
它只是将输入精度限制为 15 位,例如尝试将25778.567889999955
放入单元格中并看到它立即转换为(在 Excel 本身中)25778.5678899999
并且1.23456789123456789
变得1.23456789123456
。有关数字表示内部及其如何影响计算的更多详细信息,请参阅这篇精彩的维基百科文章。