问题
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