繁体   English   中英

openxml和Excel 15位数字的限制

[英]openxml and Excel 15 digits number limit

我正在使用来自Apache的POI从Java程序中的Excel文件读取。 excel具有我用Java复制的宏,但是当我比较结果时,有一些小的舍入差异,我试图尽可能地消除。 下载POI 3.13的代码并在调试模式下运行后,我意识到它们没有像Excel那样处理数字,Excel仅使用15位数字,之后再添加非有效的0,而是使用17位数字的表示形式。 您可以在这里看到。 但是更深入一点,看来POI正在使用openxml,而openxml单元格已经将浮点数存储在17位而不是15位上。所以在我看来,在openxml中处理数字存在错误,但是我很惊讶以前没有发现“大”的东西来处理浮点数,因为我找不到任何东西。

所以我的问题是:有一种解决方法可以在使用POI时获得完全相同的15位Excel? 更好的方法是,在此问题上,openxml是否可以更正为类似于Excel?

但令我惊讶的是,以前没有发现“大”字样处理浮点数不好

Excel的浮点用法是错误的,如本文的§2 所述 Microsoft试图将值实际上是53位二进制浮点数时,假装值是15位十进制浮点数,这只会使情况变得更糟,而不是模仿它,您应该避免使用Excel进行认真的计算。 以下是第2节结论的引文:

Excel用户如何预测所显示的功能而不是实际值? 哪些表情在显示之前会经过修饰四舍五入? 如果不了解这些问题就无法调试用户的程序,并且有意识的用户最终会调试Microsoft的虔诚欺诈行为,而不仅仅是调试出现故障的Excel电子表格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM