首页 > 解决方案 > 如何处理R中的下溢?

问题描述

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

标签: rprecisionnumericexponentialunderflow

解决方案


您可以使用机器的数值特性( .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。


推荐阅读