如何处理R中的下溢?

How to deal with underflow in R?

我想计算这个数字: 0.34911191^1157 我正在使用 R 编程语言,它 returns 我 0 (这是一个下溢问题)。我该如何解决?谢谢。

可以使用Numerical Characteristics of the Machine(.Machine {base})来测试结果,如下图:

> 0.34911191 ^ 10 < .Machine$double.neg.eps
[1] FALSE
> 0.34911191 ^ 1157 < .Machine$double.neg.eps
[1] TRUE

double.neg.eps 是一个小的正浮点数 x 使得 1 - x != 1.

您在找这样的东西吗?
CRAN 包 Brobdingnag 有两个小插图解释了它的用途。

library(Brobdingnag)

x <- 1157 * log(0.34911191)
y <- as.brob(x)
exp(y)
#[1] +exp(-1217.6)
exp(y) < .Machine$double.neg.eps
#[1] TRUE