【问题标题】:How do i use Math.sin() in javascript to get correct answer? [duplicate]如何在 javascript 中使用 Math.sin() 来获得正确答案? [复制]
【发布时间】:2014-03-30 22:37:47
【问题描述】:

当我在 JavaScript 中使用 Math.sin(90) 计算 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>

【问题讨论】:

  • JavaScript 中的三角函数作用于弧度,而不是度数。
  • @Pointy 可能重复,我不知道它在弧度中有效。

标签: javascript math


【解决方案1】:

Math.sin 期望输入为弧度,但您期望的结果是 90 度。把它转换成弧度,像这样

console.log(Math.sin(90 * Math.PI / 180.0));
# 1

根据维基百科的Radian to Degree conversion formula

Angle in Radian = Angle in Degree * Math.PI / 180

【讨论】:

  • console.log(Math.sin(180 * Math.PI / 180)); 怎么会返回 1.2246467991473532e-16 而不是 0
  • @nils - 注意1.2246467991473532e-16这个数字非常非常小,它相当于数字末尾的0.00000000000000012246467991473532(注意e-16),这是一个科学的形式写一个数字。
【解决方案2】:

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

Math.sin(90 * (Math.PI / 180))

【讨论】:

    猜你喜欢
    • 2022-01-22
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 2018-05-28
    • 2016-11-14
    • 2018-08-27
    • 2019-08-19
    • 2020-11-08
    相关资源
    最近更新 更多