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

Math.sin() gives different results on server/client?

本文关键字:结果 客户端 sin 服务器 Math      更新时间:2023-09-26

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

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

服务器上的-9986.46139381927

-9986.46115497749在客户端/浏览器/app

为什么会这样?我该如何预防呢?

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

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

"为什么是这样?"的答案是,Math的javascript实现。

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

特别是"sin (x)返回与实现相关的sin (x)近似值。参数以弧度表示。"(我的斜体)。

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