Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用R创建向量(10^16+;1,10^16+;2,…,10^16+;1000)?_R_Precision_Mantissa - Fatal编程技术网

如何使用R创建向量(10^16+;1,10^16+;2,…,10^16+;1000)?

如何使用R创建向量(10^16+;1,10^16+;2,…,10^16+;1000)?,r,precision,mantissa,R,Precision,Mantissa,我想创建以下向量(10^16+1,10^16+2,…,10^16+1000)。 但如果我这样尝试: daten <- rep(1e+16,1000) daten + 1:1000 如何使R计算得更精确? 谢谢使用Rmpfr软件包,您可以获得所需的精度。使用mpfr函数创建数字,指定值+所需的精度位数 library(Rmpfr) daten <- mpfr(1:1000, 120) daten <- daten + mpfr(1e16, 120) print(daten[1:

我想创建以下向量(10^16+1,10^16+2,…,10^16+1000)。 但如果我这样尝试:

daten <- rep(1e+16,1000)
daten + 1:1000
如何使R计算得更精确?
谢谢

使用
Rmpfr
软件包,您可以获得所需的精度。使用
mpfr
函数创建数字,指定值+所需的精度位数

library(Rmpfr)
daten <- mpfr(1:1000, 120)
daten <- daten + mpfr(1e16, 120)
print(daten[1:5])

精确到什么程度?R不是(至少是现成的)任意精度的计算器。在您的示例中,您正在处理浮点运算@里奇·斯克里文:所以最后一个数字是正确的
library(Rmpfr)
daten <- mpfr(1:1000, 120)
daten <- daten + mpfr(1e16, 120)
print(daten[1:5])
5 'mpfr' numbers of precision  120   bits 
[1] 10000000000000001 10000000000000002 10000000000000003 10000000000000004 10000000000000005