Math.log2 точность изменилась в Chrome
Я написал программу на JavaScript, которая рассчитывает глубину двоичного дерева на основе количества элементов. Моя программа работала в течение нескольких месяцев, но недавно я обнаружил разницу, когда веб-страницу просматривают в Chrome и Firefox.
В частности, на Firefox:
Math.log2(8) = 3
но теперь в Chrome:
Math.log2(8) = 2.9999999999999996
Моя программа на JavaScript изначально была написана для определения глубины двоичного дерева на основе количества элементов:
var tree_depth = Math.floor(Math.log2(n_elements)) + 1;
Я сделал простую модификацию этой формулы, чтобы она по-прежнему работала корректно в Chrome:
var epsilon = 1.e-5;
var tree_depth = Math.floor(Math.log2(n_elements) + epsilon) + 1;
У меня есть 2 вопроса:
Кто-нибудь еще заметил изменение в точности в Chrome в последнее время дляMath.log2
?
Есть ли более элегантная модификация, чем та, которую я сделал выше, добавив эпсилон?