Playwright 推出的 Chrome 执行错误的浮点数学运算

Chrome launched by playwright performs wrong floating point math

提问人:Kavi Arasu 提问时间:7/26/2023 最后编辑:Kavi Arasu 更新时间:7/27/2023 访问量:41

问:

Playwright 推出的 Chrome 执行错误的浮点数学运算。

我在 chrome 开发者控制台上运行了以下代码

  const f = new Float32Array(1)
  const u8 = new Uint8Array(f.buffer)
  f[0] = Infinity
  f[0] = f[0] - f[0]
  console.log(u8[3])

在 playwright 推出的 chrome 应用程序中,我在开发者控制台上运行了上述代码,得到的结果为 255。但是,在我手动启动的相同版本的 chrome 上的相同浮点数学在控制台上输出结果 127。为什么会有差异?很好奇是什么原因造成的。

JavaScript google-chrome 浏览器 浮点 playwright

评论

0赞 Vishal Aggarwal 7/26/2023
“chrome 应用程序”是什么意思?您是在 chrome 控制台中进行数学计算,还是在谈论您从 playwright 在 chrome 中启动的应用程序?
0赞 Kavi Arasu 7/27/2023
在 chrome 控制台中进行数学计算。我列出了手动启动的 chrome 实例和 playwright 启动的 chrome 实例的计算结果
0赞 Eric Postpischil 7/27/2023
那不是浮点数学。检查显示 NaN 编码的字节(∞−∞ 的结果),而不是对数字进行的任何算术运算。JavaScript 不区分 NaN(尽管实现可能会这样做),并且实现可以使用符号位集(将产生 255 个高字节)或清除(将产生 127 个高字节)和/或设置或清除各种低位的 NaN 编码。u8[3]

答: 暂无答案