我使用从apache的POI从Java程序中的Excel文件读取。 excel有我在Java中复制的宏,但是当我比较结果时,我尽可能地根除了小的舍入差异。 下载POI 3.13的代码并在调试模式下运行后,我意识到他们没有处理像Excel这样的数字,它只使用15位数字并在其后添加非重要的0,而是使用17位数的表示。你可以看到here。 但是更深层次看来,POI使用的是openxml,而openxml Cell已经将浮点数存储在17位而不是15位......所以在我看来,在openxml中处理数字时存在一个错误,但我相当感到惊讶的是,之前没有发现“大”的处理浮点数的问题,因为我找不到任何相关信息。openxml和Excel 15数字数量限制
所以我的问题:是否有一个解决方法,以获得完全相同的15位数字的Excel使用POI时?更好的办法是,可以在这个问题上纠正像Excel一样的openxml问题?
感谢您的链接。我得到或多或少的问题,但在我的情况下,这不是我想继续使用Excel。这是现在使用的工具,我将通过在Java程序中实现其内部的宏来取代它。但是我仍然从电子表格中获得初始值。我的目标是比较结果(现在不同),以确保宏正确实施。因此,即使我们可以争论Excel是否做得最好,openXML的目标是尽可能地与Excel相似,但这里并不是这样。所以他们应该做同样的“美容”四舍五入。 – julien