As Livy notes in his comment, this is a problem with R (and, in fact, most programming languages), with the way numbers are represented in binary format.
To work with extremely large / small floating point numbers, you can use the library Rmpfr:
install.packages("Rmpfr")
library("Rmpfr")
x <- c(-2.5e+59, -5.6e+60)
y <- mpfr(x, 6)
y^6
, , R (, exp(1800)), "Brobdingnag":
install.packages("Brobdingnag")
library("Brobdingnag")
10^1000.7
10^as.brob(1000.7)