r - 如何使用 R 创建向量 (10^16 + 1, 10^16 + 2, ... , 10^16 + 1000)?
问题描述
我想创建以下向量 (10^16 + 1, 10^16 + 2, ... , 10^16 + 1000)。但如果我这样尝试:
daten <- rep(1e+16,1000)
daten + 1:1000
它给了我一个近似值:
[1] 10000000000000000 10000000000000002 10000000000000004 10000000000000004
[5] 10000000000000004 10000000000000006 10000000000000008 10000000000000008
[9] 10000000000000008 10000000000000010 10000000000000012 10000000000000012
[13] 10000000000000012 10000000000000014 10000000000000016 10000000000000016
......
如何让 R 计算更精确?谢谢
解决方案
该Rmpfr
软件包可让您根据需要获得尽可能高的精度。使用函数创建数字mpfr
,指定值 + 您需要的精度位数。
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
推荐阅读
- python - “成熟构建”在 Windows 上失败
- swift - 应用程序试图以模态方式呈现活动控制器错误
- list - Flutter ListView 不会在 setState 上更新
- azure-storage - 如何为不存在的列编写 Azure 存储表查询
- android - Chrome 远程调试 - 如何检查混合应用程序中的元素(webview)
- javascript - 将文件上传到快递服务器时出现跨源错误
- python - 在有向图中查找所有节点前驱
- html - 强制具有不可编辑的样式/属性以适应包含宽度的任何方法?
- php - php中的foreach(菜单和子菜单)
- ios - 列表行中视图的对齐方式