我将下面R中的值分配给var x,这是我从文件中读取的,当我打印它时,它显示了双格式。我希望能够存储没有小数的这个长数字,因为当我做一个REST帖子时,数据会被发布为double。我尝试过as.character(x),但是当对REST API执行POST时,它被视为字符串。有没有办法将此值保持为Long而不是十进制?
x <- 1426643216897
print(x)
[1] 1.426643e+12
Thranks
答案 0 :(得分:3)
如果使用您不希望附加的字符,我建议在print
函数中使用quote = FALSE。由于print
也接受数字参数,您可以采用以下两种方式:
> print(as.character(x), quote=FALSE)
[1] 1426643216897
> print(x, digits=20)
[1] 1426643216897
对战:
> print(as.character(x) )
[1] "1426643216897"
没有R长整数模式。您应该理解,超过9个基数为10位的数字是&#34;存储为小数&#34;,即以横坐标+尾数存储,但整数长度的明显增加是通过打印&#34; double&#34;的横坐标的精确转换不带小数点的基数为10的表示法。请注意,如果您明确尝试&#34;存储为整数&#34;:
会发生什么> x <- 1426643216897L
Warning message:
non-integer value 1426643216897L qualified with L; using numeric value
如果你需要存储一个长度超过53位二进制数字可以处理的数字,你需要使用字符存储,然后使用quote = FALSE选项或使用cat
输出:
> cat("test")
test
答案 1 :(得分:0)
在R环境中首先设置数字选项:
options(digits=22)