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?

questionAnswers(2)

yourAnswerToTheQuestion