R包openXLSX和浮点运算可能会导致不准确的结果

当输出非常小的p.values的表格数据时,我们注意到在取得的excel文件中有些行被错误地replace为0.0000000000,而不是在-200 … _300中10的非常小的幂

以下链接告诉我们最小的Excel限制是2.2250738585072E-308,但是我们观察到的错误数字如1,21408E-288或1,21408E-288( https://support.microsoft.com/en-us/kb/ 78113 )我们可以通过连续将2.2250738585070E-208除以10来确认

通过10个串行分割达到公布的限制

通过10个串行分割达到公布的限制

使用R代码导出文本表(注意10E-293和第三列-288中的小数字。

导出文本表

导出xlsx文件版本的同一个表使用openxlsx R代码,其中小数被replace为0.0000000000(点代替逗号分隔符)

导致有错误的excel文件

MS Excel在打开时更正,但使用了错误的小数点分隔符

excel纠正了导致我的语言环境设置错误的小数点分隔符和不一致数字的错误

是否有人知道Xlsx导出的限制是什么,以便我们可以将这些数字转换为0?

谢谢

问题终于知道了,并且通过安装openXLSX包的开发者版本3.1.6得到了解决(参考github页面进行安装并且看问题132