在R中将长值转换为双精度值
我将下面R中的值赋给从文件中读取的var x,当我打印它时,它显示为双格式。我希望能够存储这个没有小数的长数字,因为当我进行REST post时,数据会以双精度的形式发布。我尝试使用.character(x),但在执行POST to REST API时,它被视为字符串。有没有办法让这个值保持长而不是小数在R中将长值转换为双精度值,r,R,我将下面R中的值赋给从文件中读取的var x,当我打印它时,它显示为双格式。我希望能够存储这个没有小数的长数字,因为当我进行REST post时,数据会以双精度的形式发布。我尝试使用.character(x),但在执行POST to REST API时,它被视为字符串。有没有办法让这个值保持长而不是小数 x <- 1426643216897 print(x) [1] 1.426643e+12 x首先在R环境中设置数字选项: options(digits=22)如果使用不希望包含的字符,
x <- 1426643216897
print(x)
[1] 1.426643e+12
x首先在R环境中设置数字选项:
options(digits=22)
如果使用不希望包含的字符,我建议在print
函数中使用quote=FALSE。由于print
也接受digits参数,因此您可以选择以下任一方式:
> print(as.character(x), quote=FALSE)
[1] 1426643216897
> print(x, digits=20)
[1] 1426643216897
与:
> print(as.character(x) )
[1] "1426643216897"
没有R长整数模式。您应该了解,超过9位10进制数字的数字被“存储为小数”,即使用横坐标+尾数存储,但整数长度的明显增加是通过打印“双精度”表示的横坐标到10进制表示的精确转换来实现的,不带小数点。请注意,如果显式尝试“存储为整数”,会发生什么:
指定副本的可能副本是在引入“半长整数”之前编写的,因此目前不是链接的最佳答案。我还认为它与数字/整数存储的输入端更相关,这一部分主要关注输出。即使您设置数字并尝试将值写入文件,它也会将其写入1.4266e+12,而不是1426643216897Hi@bondedust,如果我想应用x,我不确定您的意思。是1426643216897L
文件的内容,还是要读入x 1426643216897是文件的内容。我想通过在结尾加上L来做一些类似于演员阵容的事情。在后面加上“L”是没有意义的。无论如何,它会变成一个替身。这一行动不会产生任何有益的结果。如果您坚持让它成为一个带有as.integer
的整数,那么结果将是NA。请注意,上面我拼错了?readLines
,但错过了5分钟的编辑窗口。
> x <- 1426643216897L
Warning message:
non-integer value 1426643216897L qualified with L; using numeric value
> cat("test")
test