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

obi*_*ahn 6 javascript node.js meteor

我用Meteor.它在服务器和客户端上都使用Javascript.

我跑的时候Math.sin(356644061314425) * 10000得到:

-9986.46139381927 在服务器上

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

为什么是这样?我怎么能阻止这个?

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

Chr*_*ear 6

我想答案"如何防止这种情况?" 是"你不能".

答案为"这是为什么?" 是没有确定Math.sin的JavaScript实现.

http://www.ecma-international.org/ecma-262/5.1/#sec-15.8.2.16

具体来说,"sin(x)返回x 的正弦的依赖实现的近似值.参数以弧度表示." (我的斜体).

但我的实验表明,现代浏览器目前只使用两种实现中的一种,Chrome与其他浏览器不同(并且看起来比其他浏览器更准确).