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

时间:2014-04-16 11:53:06

标签: r nan arbitrary-precision

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

1e-2000/1e-2000
#[1] NaN
#But the real value should be 1

所以,任何帮助都表示赞赏。

1 个答案:

答案 0 :(得分: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