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

以下是我要检查行为的步骤:

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的精度的信息.

当我们在MS Excel中打开它时,Excel如何显示原始值?
虽然提取的文件中没有信息,但它如何重建原始数字?

请注意,我没有更改单元格格式或任何内容,因此单元格格式为General.

据我所知,因为Excel将数字存储为浮点数,所以无法将值保存到完美的准确度,我无法理解的是当我在MS Excel中打开它时它是如何保留原始值的.我正面临着使用OpenXML SDK阅读Excel文件的问题,但在询问这个问题之前,我正在寻找这个更基本问题的答案.

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

点赞