我在excel文件中有一个等于-29998,1500000003
的数字
当我尝试在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
答案 0 :(得分:2)
您可以通过char[]
获得精度最高为22位数字的字符串:
wchar_t[]
当然,这将向您展示与试图以有限精度表示二进制表示形式中的十进制数有关的所有丑陋...