我对IEEE754浮点标准了如指掌,因为我必须为了考试而学习它。我很清楚浮点数是如何使用的,以及它们可能会遇到的问题。我可以手动对浮点数的二进制表示进行任何操作。
然而,我还没有找到一个明确声明excel使用64位浮点数在内部表示excel中除文本之外的每个单元格“类型”的来源。我不知道一些类型是使用有符号整数还是无符号整数,还有一些类型使用64位浮点数。
我已经找到了数以万亿计的文章,这些文章1)描述了浮点数,然后2)讨论了由于浮点数而要小心使用excel。我没有找到一条语句说“除文本外,所有类型都是64位浮点数”。我没有发现一条语句说“改变一个单元格的类型只会改变它的视觉表示,而不会改变它的内部表示,除非你把类型从文本改成了其他非文本的类型,或者你把非文本的类型改成了文本”。
这就是我想知道的所有内容,它是如此简单和不言自明,以至于我惊讶地发现,我可以找到数万亿篇文章和页面,这些文章和页面围绕着这些陈述,但没有直接陈述它们。
发布于 2010-05-12 09:23:50
Excel2007支持OpenXML格式,它是一个包含大量XML文件的ZIP文件(.XLSX)。有一个使用OpenXML格式的软件开发工具包,你可以在here上获得它的文档,并下载它的here。
基本上,数字以纯文本的形式存储在一个元素中,因此,如果单元格A1在UI中的数字为42,单元格A2的数字为81.56,则该XML将看起来像下面的XML片段:
<row r="1" spans="1:2">
<c r="A1">
<v>42</v>
</c>
<c r="B1">
<v>81.569999999999993</v>
</c>
</row>当使用OpenXML时,我强烈建议您只使用SDK,而不是自己去追求它。
发布于 2010-05-12 08:47:48
This page具有对内部Excel数据类型的引用。
发布于 2010-05-12 15:14:47
它将数字存储为双精度。
https://stackoverflow.com/questions/2815407
复制相似问题