说我有一个bigz号码
library(gmp)
x <- as.bigz(99999)^99
y <- x/66^99
现在我想提取整数部分,如果这个数字写成一个混合数字(例如183和15/21)。如果数字较小,我可以floor(as.numeric(y))
,但最终会失去精确度(特别是这个数字R会返回Inf
)。
我想简单地执行floor(y)
,但除非y
是整数,否则会返回错误。
我们可以想象一个更简单的案例:
floor(33/7)
# returns 4
floor(as.bigz(33)/7)
# does not return 4
答案 0 :(得分:3)
您可以使用as.bigz()
将bigq
(这是您的y
)转换为一个大整数:
library(gmp)
x <- as.bigz(33)
y <- x/7
as.bigz(y)
# Big Integer ('bigz') :
# [1] 4
或者,如果您不需要y
作为中间人,则可以使用整数除法运算符%/%
,如下所示:
x %/% 7
# Big Integer ('bigz') :
# [1] 4