2013-07-11 79 views
0

我和我的合作伙伴正在研究一种确定性物理引擎,这种引擎在各种平台上的运行方式完全相同。为了做出这样的事情,我们正在使用定点或截断浮点数学(我们将在后面解释)。但是,为了将引擎移植到Javascript,我们必须确保我们将使用的Javascript中的双精度浮点操作与我们将在桌面端口中使用的任何操作一致。在Javascript中实现平方根方法

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

我们不喜欢写自己的平方根函数,因为原生实现的Math.sqrt()总是会胜过我们在Javascript中编写的任何东西。

回答

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是+无穷大,结果是+无穷大。