在Javascript中实现平方根法

时间:2013-07-11 16:33:36

标签: javascript math floating-point

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

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

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

1 个答案:

答案 0 :(得分: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。
  •