Javascript sin function issue

回眸只為那壹抹淺笑 提交于 2019-11-27 07:23:45

问题


I have a problem with Math.sin. I thought it would output the sinus of the given integer. So I tried Math.sin(30) and my output was -0.9880316240928618 and then I checked with my calculator and it was 0.5.


回答1:


Parameters are assumed to be in radians, not degrees.

Try

Math.sin(Math.PI * (30/180));

A comment below notes that pre-computing the ratio π/180 is a good idea. One could add a companion to Math.sin that works on degrees this way:

Math.dsin = function() {
  var piRatio = Math.PI / 180;
  return function dsin(degrees) {
    return Math.sin(degrees * piRatio);
  };
}();

(Some people don't like extending built-in objects, but since one doesn't instantiate Math instances — at least, I don't — this doesn't seem terribly offensive.)




回答2:


Math.sin works in radians, I guess your calculator is in degrees.




回答3:


As was said above, Math.sin() requires the use of radians as input. To convert degrees to radians, use:

Radians = (Degrees * (Math.PI/180))



回答4:


Math.sin accepts values in radians, while your calculator is set to degrees.



来源:https://stackoverflow.com/questions/8154794/javascript-sin-function-issue

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!