假设我有一个大数字
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
您可以使用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