Чтобы обойти целочисленные ограничения R, вы можете использовать пакет gmp для R: http://cran.r -project.org / web / packages / gmp / index.html
Я обнаружил этот пакет, когда играл с задачами Project Euler и нуждался в факторизации. Но он также предоставляет функции для больших целых чисел.
EDIT:
Похоже, что этот вопрос был не столько о больших целых числах, сколько о округлении. Но для следующего космического путешественника, который придет сюда, вот пример большой целочисленной математики с gmp
:
Попробуйте умножить 1e500 * 1e500, используя базу R:
> 1e500 * 1e500
[1] Inf
Итак, чтобы сделать то же самое с gmp
, вам сначала нужно создать большой целочисленный объект, который он вызывает bigz
. Если вы попытаетесь передать as.bigz()
целое или двойное число действительно большого числа, это не сработает, потому что вся причина, по которой мы используем gmp
, заключается в том, что R не может содержать такое большое число. Таким образом, мы передаем ему строку. Поэтому следующий код начинается с манипуляции со строками для создания большой строки:
library(gmp)
o <- paste(rep("0", 500), collapse="")
a <- as.bigz(paste("1", o, sep=""))
mul.bigz(a, a)
Вы можете считать нули, если вы так склонны.