如何在javascript中使用Math.sin()来获得正确的答案?

JaS*_*ale 8 javascript math

当我使用Math.sin(90)在javascript中计算90度的正弦时,它返回0.8939966636005565,但sin(90)是1.有没有办法解决这个问题?我需要任何角度的准确值.

<!DOCTYPE html>
<html>
<body>
    <p id="demo">Click the button calculate value of 90 degrees.</p>
    <button onclick="myFunction()">Try it</button>
<script>
function myFunction(){
    document.getElementById("demo").innerHTML=Math.sin(90);
}
</script>
Run Code Online (Sandbox Code Playgroud)

the*_*eye 14

Math.sin期望输入是弧度,但你期望90度的结果.将它转换为弧度,就像这样

console.log(Math.sin(90 * Math.PI / 180.0));
# 1
Run Code Online (Sandbox Code Playgroud)

根据维基百科的Radian to Degree转换公式,

Angle in Radian = Angle in Degree * Math.PI / 180
Run Code Online (Sandbox Code Playgroud)

  • 怎么来`console.log(Math.sin(180*Math.PI/180));`返回`1.2246467991473532e-16`而不是'0`? (3认同)
  • @nils - 注意数字`1.2246467991473532e-16`非常非常小,相当于`0.00000000000000012246467991473532`(注意`e-16`)末尾的a是科学的写作形式,数字。 (3认同)

sjf*_*sjf 5

Javascript中的sin函数需要弧度,而不是度.你需要将90转换为弧度才能得到正确的答案:

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