【问题标题】:Implementation of square root method in JavascriptJavascript中平方根方法的实现
【发布时间】:2013-07-11 16:33:36
【问题描述】:

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

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

我们不想编写自己的平方根函数,因为原生实现的 Math.sqrt() 总是优于我们用 Javascript 编写的任何东西。

【问题讨论】:

    标签: javascript math floating-point


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      相关资源
      最近更新 更多