js Math.PI 值没有按应有的方式计算出来

js Math.PI value not calculating out like it should

Math.sin(75 * (180/3.14)); -> 0.9956310419973837

Math.sin(75 * (180/Math.PI)); -> -0.4927842805101025

以上是从acrobat中的js调试器复制过来的。我不明白为什么。第一个值 (.995....) 是正确的。任何 help/explanations 将不胜感激。

您的问题是规模与精度相结合。 75*180 大约是 13,500,这是您乘以 pi 的近似值。在这个规模上,即使是很小的 乘法 变化也会导致范围的巨大差异。将其与您使用 pi (3.14) 的粗略近似值与更精确的近似值 (Math.PI) 的事实相结合,在这一点上给您带来了很多可变性。在 Wolfram Alpha 上尝试这两种计算,您会发现 JavaScript 给出了一致且正确的答案。

正弦函数将return 对应于正弦函数的 y 值的结果。所以在这个尺度下,一个非常小的乘法误差(Math.PI - 3.14)会被放大。考虑:

1 * (Math.PI - 3.14) = 0.0015926535897929917
13500 * (Math.PI - 3.14) = 21.50082346220539

(这不是错误的完整计算,只是规模重要的证明。)

这表明,在 1 左右,3.14 和 Math.PI 之间的差异并没有真正将您移动那么远(0.00159 弧度或 0.09 度)。在 4298 左右,它移动了 21.5 弧度(或 1231.9 度),这使您在正弦波上处于完全不同的位置!