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

时间:2015-10-27 16:26:18

标签: javascript node.js meteor

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

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

服务器上的

-9986.46139381927

客户端/浏览器/应用

上的

-9986.46115497749

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

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

1 个答案:

答案 0 :(得分:6)

我认为答案是"我如何防止这种情况?"是"你不能"。

答案"为什么会这样?"是没有确定Math.sin的javascript实现。

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

具体而言#34; sin(x)将依赖于实现的近似值返回到x的正弦值。这个论点以弧度表示。" (我的斜体)。

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