如果一个数字除以R中另一个太小的数字怎么办?

Zan*_*der 1 r nan arbitrary-precision

我已经尝试过1e-324在R中基本上是零.所以,当我想做这样的计算时我该怎么办:

1e-2000/1e-2000
#[1] NaN
#But the real value should be 1
Run Code Online (Sandbox Code Playgroud)

所以,任何帮助表示赞赏.

ton*_*nov 6

你需要任意精度算术.看看gmp:

library(gmp)
divide_by_zero <- function(n) {10^n / 10^n}
divide_by_nonzero <- function(n) {pow.bigz(10, n) / pow.bigz(10, n)}
divide_by_zero(-320:-330)
# [1]   1   1   1   1 NaN NaN NaN NaN NaN NaN NaN
divide_by_nonzero(-320:-330)
#Big Rational ('bigq') object of length 11:
# [1] 1 1 1 1 1 1 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)