小编Ste*_*rra的帖子

Chrome中的Math.log2精度已更改

我编写了一个JavaScript程序,它根据元素的数量计算二叉树的深度.我的程序已经运行好几个月,但最近我发现在Chrome与Firefox中查看网页时有所不同.

特别是在Firefox上:

Math.log2(8) = 3
Run Code Online (Sandbox Code Playgroud)

但现在在Chrome中:

Math.log2(8) = 2.9999999999999996
Run Code Online (Sandbox Code Playgroud)

我的JavaScript程序最初是为了根据元素数量找到二叉树的深度而编写的:

var tree_depth = Math.floor(Math.log2(n_elements)) + 1;
Run Code Online (Sandbox Code Playgroud)

我对此公式进行了简单修改,以便它仍可在Chrome上正常运行:

var epsilon = 1.e-5;
var tree_depth = Math.floor(Math.log2(n_elements) + epsilon) + 1;
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  1. 有没有人注意到最近Chrome的精确度发生了变化Math.log2

  2. 是否有比我上面添加的epsilon更优雅的修改?

javascript precision

14
推荐指数
1
解决办法
734
查看次数

标签 统计

javascript ×1

precision ×1