gpt4 book ai didi

r - 从字符不精确性中转换数字

转载 作者:行者123 更新时间:2023-12-04 04:36:09 26 4
gpt4 key购买 nike

as.numeric(as.character(1363821605424526000))结果 1363821605424526080 .

为什么以及如何防止这种情况发生?

最佳答案

一种解决方案是使用 gmp库( GNU 多精度 库)来创建和执行大整数的基本算术...

require(gmp)
as.bigz("1363821605424526000")
#Big Integer ('bigz') :
#[1] 1363821605424526000
注意使用 "四舍五入。这是为了保护它不被解析为 numeric R 的数据类型当然不能在给定的数据结构中准确地表示这个数字。 "让 R 在 as.bigz 之前将其视为字符变量把它变成 big integer类型。
例子
as.bigz("1363821605424526000") + 1
#Big Integer ('bigz') :
#[1] 1363821605424526001

as.bigz("1363821605424526000")^3
#Big Integer ('bigz') :
#[1] 2536720967038413127881466345733319337545403576000000000

关于r - 从字符不精确性中转换数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19722835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com