Javascript sin函数问题

noo*_*oob 3 javascript math trigonometry

我有问题Math.sin.我以为它会输出给定整数的窦.所以我尝试了Math.sin(30)我的输出-0.9880316240928618然后我用我的计算器检查它是0.5.

Poi*_*nty 16

假设参数是弧度,而不是度.

尝试

Math.sin(Math.PI * (30/180));
Run Code Online (Sandbox Code Playgroud)

下面的评论指出,预先计算比率π/ 180是一个好主意.可以Math.sin通过这种方式添加一个以度为单位的伴侣:

Math.dsin = function() {
  var piRatio = Math.PI / 180;
  return function dsin(degrees) {
    return Math.sin(degrees * piRatio);
  };
}();
Run Code Online (Sandbox Code Playgroud)

(有些人不喜欢扩展内置对象,但是因为没有实例化Math实例 - 至少,我没有 - 这似乎不是非常冒犯.)

  • 如果经常使用的话,+1,预先计算的"Math.PI/180"已被证明是一个很好的性能提升. (4认同)