python - 计算非常小的值的-log10

标签 python perl r openoffice.org

有没有办法计算 -log10 值。

其中值非常小,即 3*e-178 或 e-320。

我已经尝试使用公式 log((1/value),10) 打开办公室,它工作正常,但是当它遇到非常小的值时,它会给出错误,比如不可能被零除。

我想当我使用 perl 或 python 或 R 时也会发生同样的情况。

请帮助将这些值转换为 -log10value

谢谢

注意:我想计算以 10 为底的值的负对数

最佳答案

在 R 中:

x <- 3e-320
log10(x)
#-319.5229

y <- 3*exp(-320)
log10(y)
#-138.4971

对于大指数:

library(Brobdingnag)
x <- 3*as.brob(10)^(-1000)
log10(x)
#-999.5229

y <- 3*as.brob(exp(1))^(-1000)
log10(y)
#-433.8174

或者:

log10(3)-1000
#-999.5229

关于python - 计算非常小的值的-log10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15021523/

相关文章:

r - 使用 lapply、Reduce 和 union 折叠 data.table 中的行

python - df.loc 超过 2 个条件

python - 如何为 Orange3 独立安装安装 Python 包

linux - 使用 perl 脚本更改文件的选定内容

linux - 连接到主机并重放输出

perl - 为什么这个 Perl 函数会返回一个值?

python - 在 Python 中将 float 打印为整数

python - 命令行 Python 应用程序中的多行用户输入

r - 对 JSON REST API 进行身份验证时如何获取 session token (在 R 中)

r - 在 R 中打印不重复的组合