Math.log1p()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
A função Math.log1p()
retorna o logaritmo natural (base e
) de 1 + um número, isto é
Experimente
Sintaxe
Math.log1p(x)
Parâmetros
x
-
Um número.
Valor de retorno
Descrição
Para valores muito pequenos de x, adicionando 1 pode reduzir ou eliminar precisão. Valores double floats costuman te dar em torno de 15 digitos de precisão no JavaScript. 1 + 1e-15 = 1.000000000000001, porém, 1 + 1e-16 = 1.000000000000000 e portanto, exatamente 1.0 naquele resultado, porque os números que passam de 15 digitos são arredondados.
Quando você calcula log(1 + x), você obterá um resultado muito perto de x, se x for um valor pequeno (isto é, porque eles são chamados logaritmos 'naturais'). Se você calcular Math.log(1 + 1.1111111111e-15) você obterá uma resposta perto de1.1111111111e-15. Ao invés, você vai acabar obtendo o logaritmo de 1.00000000000000111022 (o arrendondamento é feito em binário, portanto, as vezes isso pode parecer estranho), então você obterá o resultado 1.11022...e-15, com somente 3 digitos corretos. Se, ao invés, você calcular Math.log1p(1.1111111111e-15) você terá um retorno mais preciso de 1.1111111110999995e-15 com 15 digitos corretos de precisão (na verdade 16 nesse caso).
Se o valor de x
for menor que -1, o valor retornado será sempre NaN
.
Por conta do log1p()
ser um metódo estático de Math
, você sempre chamará como Math.log1p()
, ao invés de chamar como um método de um objeto Math
que você tenha criado (Math
não é um construtor).
Exemplos
Usando Math.log1p()
Math.log1p(1); // 0.6931471805599453
Math.log1p(0); // 0
Math.log1p(-1); // -Infinity
Math.log1p(-2); // NaN
Polyfill
Isto pode ser implementado com a seguinte função:
Math.log1p =
Math.log1p ||
function (x) {
return Math.log(1 + x);
};
Especificações
Specification |
---|
ECMAScript Language Specification # sec-math.log1p |
Compatibilidade com navegadores
BCD tables only load in the browser