Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
平方根法在Javascript中的实现_Javascript_Math_Floating Point - Fatal编程技术网

平方根法在Javascript中的实现

平方根法在Javascript中的实现,javascript,math,floating-point,Javascript,Math,Floating Point,我和我的合作伙伴正在开发一个确定性物理引擎,它将在不同的平台上运行完全相同的功能。为了实现这一点,我们使用定点或截断浮点数学(我们将在稍后解决)。然而,为了将引擎移植到Javascript,我们必须确保我们将使用的Javascript中的双精度浮点操作与我们将在桌面端口中使用的任何操作一致 考虑到这一点,我的问题是:Math.sqrt()是如何在Javascript中实现的?如果跨浏览器有不同的实现,那么这些实现是什么?或者,如果前面的问题没有确定的答案,那么Math.sqrt()可以产生的最大

我和我的合作伙伴正在开发一个确定性物理引擎,它将在不同的平台上运行完全相同的功能。为了实现这一点,我们使用定点或截断浮点数学(我们将在稍后解决)。然而,为了将引擎移植到Javascript,我们必须确保我们将使用的Javascript中的双精度浮点操作与我们将在桌面端口中使用的任何操作一致

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

我们不喜欢编写我们自己的平方根函数,因为本机实现的Math.sqrt()总是优于我们用Javascript编写的任何函数。

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

15.8.2.17平方米(x)

返回x的平方根的依赖于实现的近似值

  • 如果x为NaN,则结果为NaN
  • 如果x小于0,则结果为NaN
  • 如果x为+0,则结果为+0
  • 如果x为-0,则结果为-0
  • 如果x为+无穷大,则结果为+无穷大