R包openXLSX&浮点运算可能会产生不准确的结果

时间:2016-01-24 10:59:47

标签: r excel

当导出具有非常小的p.values的表格数据时,我们注意到在获得的excel文件中有些行被错误地替换为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以达到公布的限制

serial division by 10 to reach the published limit

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

exported text table

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

resulting excel file with errors

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

excel corrects the mistake leading to wrong decimal separator and inconsistent number for my locale settings

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

由于

1 个答案:

答案 0 :(得分:1)

问题终于知道并通过安装openXLSX软件包的开发人员版本3.1.6来解决(请参阅 github page 进行安装并查看 {{3 }}