Math.sin()在服务器/客户端上给出不同的结果?
我使用meteor。 它在服务器和客户端都使用Javascript。
当我运行Math.sin(356644061314425) * 10000
我得到:
-9986.46139381927
在服务器上
-9986.46115497749
在客户端/浏览器/应用程序
为什么是这样? 我怎样才能防止这个?
编辑:拟议的重复问题是指度/弧度。 我认为我的是一个运行时问题。
我想“如何防止这个?”的答案。 是“你不能”。
“这是为什么?”的答案 Math.sin的JavaScript实现不确定。
见http://www.ecma-international.org/ecma-262/5.1/#sec-15.8.2.16
具体而言“sin(x)返回x的正弦值的实现依赖近似值 ,参数以弧度表示。 (我的斜体)。
但是我的实验表明,现代浏览器目前只使用两种实现中的一种,Chrome与其他浏览器不同(并且看起来更精确)。