A precisão do Math.log2 mudou no Chrome
Eu escrevi um programa JavaScript que calcula a profundidade de uma árvore binária com base no número de elementos. Meu programa está funcionando bem há meses, mas recentemente descobri uma diferença quando a página da web é visualizada no Chrome x Firefox.
Em particular, no Firefox:
Math.log2(8) = 3
mas agora no Chrome:
Math.log2(8) = 2.9999999999999996
Meu programa JavaScript foi escrito originalmente para encontrar a profundidade da árvore binária com base no número de elementos como:
var tree_depth = Math.floor(Math.log2(n_elements)) + 1;
Fiz uma modificação simples nesta fórmula para que ainda funcione corretamente no Chrome:
var epsilon = 1.e-5;
var tree_depth = Math.floor(Math.log2(n_elements) + epsilon) + 1;
Eu tenho 2 perguntas:
Mais alguém notou recentemente uma alteração na precisão do Chrome paraMath.log2
?
Existe uma modificação mais elegante do que a que eu fiz acima adicionando epsilon?