0

我和我的搭档正在开发一个确定性物理引擎,该引擎将在各种平台上运行完全相同。为了做出这样的事情,我们使用定点或截断浮点数学(我们稍后会弄清楚)。但是,为了将引擎移植到 Javascript,我们必须确保我们将使用的 Javascript 中的双精度浮点运算与我们将在桌面移植中使用的任何运算保持一致。

考虑到这一点,我的问题是: Math.sqrt() 是如何在 Javascript 中实现的?如果跨浏览器有不同的实现,那些实现是什么?或者,如果前面的问题没有确定的答案,那么 Math.sqrt() 可以产生的最大错误量是多少?

我们不想编写自己的平方根函数,因为本机实现的 Math.sqrt() 将始终胜过我们用 Javascript 编写的任何内容。

4

1 回答 1

1

ECMA-262(ECMAScript 5.1 规范)不需要特定的实现Math.sqrt,只需要异常数值(、、等)的特定NaN结果-0

15.8.2.17 sqrt (x)

返回 x 的平方根的与实现相关的近似值。

  • 如果 x 为 NaN,则结果为 NaN。
  • 如果 x 小于 0,则结​​果为 NaN。
  • 如果 x 为 +0,则结果为 +0。
  • 如果 x 为 -0,则结果为 -0。
  • 如果 x 为 +Infinity,则结果为 +Infinity。
于 2013-07-11T17:29:03.187 回答