Javascript Math.sin()在服务器/客户端上给出不同的结果?

Javascript Math.sin()在服务器/客户端上给出不同的结果?,javascript,node.js,meteor,Javascript,Node.js,Meteor,我用流星。它在服务器和客户端上都使用Javascript 当我运行Math.sin(356644061314425)*10000时,我得到: 服务器上的-9986.46139381927,以及 -9986.46115497749在客户端/浏览器/应用程序上 为什么会这样?我怎样才能防止这种情况 编辑:建议的重复问题涉及度/弧度。我认为我的问题更多的是运行时问题 我认为“我如何防止这种情况?”的答案是“你不能” “这是为什么?”的答案是Math.sin的javascript实现尚未确定 看 具体来

我用流星。它在服务器和客户端上都使用Javascript

当我运行
Math.sin(356644061314425)*10000时,我得到:

服务器上的
-9986.46139381927
,以及

-9986.46115497749
在客户端/浏览器/应用程序上

为什么会这样?我怎样才能防止这种情况

编辑:建议的重复问题涉及度/弧度。我认为我的问题更多的是运行时问题

我认为“我如何防止这种情况?”的答案是“你不能”

“这是为什么?”的答案是Math.sin的javascript实现尚未确定

具体来说,“sin(x)返回与实现相关的x的正弦近似值。参数以弧度表示。”(我的斜体)


但我的实验表明,现代浏览器目前只使用两种实现中的一种,Chrome与其他浏览器不同(而且似乎比其他浏览器更精确)。

将其设置为显示小数点后3位;)它可能正在使用浮动。你知道,浮动在某一点上是不精确的。如果你现在用谷歌搜索它,可能会重复很多答案……我的opera给出-9986.46139381927,Edge和Safari也一样。谷歌的计算器给出-9986.46115。Windows计算器给出-9986.4611549774901487819562311456。2021年更新:Opera、Firefox、Chrome和Edge现在都为
Math.sin(356644061314425)*10000给出了相同的
-9986.46115497749
结果