R读取Excel文件数值精度问题

时间:2018-11-20 18:48:04

标签: r excel openxlsx

我在excel文件中有一个等于-29998,1500000003的数字

excelfile

当我尝试在R中打开它时

> library(openxlsx)
> posotest <- as.character(read.xlsx("sofile.xlsx"))
> posotest
[1] "-29998.1500000004"    

有帮助吗?期望的结果:-29998,1500000003


编辑:使用options(digits=13),我得到-29998.150000000373,它可以解释为什么进行四舍五入,但是即使使用options(digits=13),我也可以

> as.character(posotest)
[1] "-29998.1500000004"

您有什么功能可以让我获取完整的字符数吗?


EDIT2 format可以这样做,但是最后会增加人为噪音。

x <- -29998.150000000373
format(x,digits=22)
[1] "-29998.15000000037252903"

由于format会给我一个错误的值,我怎么知道在nchar中使用多少个数字?

文件为here

1 个答案:

答案 0 :(得分:2)

您可以通过char[]获得精度最高为22位数字的字符串:

wchar_t[]

当然,这将向您展示与试图以有限精度表示二进制表示形式中的十进制数有关的所有丑陋...