【问题标题】:Math.cos() gives wrong results [duplicate]Math.cos() 给出错误的结果[重复]
【发布时间】:2016-03-19 03:36:14
【问题描述】:

根据我的理解和我的计算器,cos(90 degrees) 等于 0
在我的代码中,我有一个函数可以让我在需要时输入度数:

function deg(i)
{
    return i*Math.PI/180;
}

虽然,当调用Math.cos(deg(90)); 时,我收到的输出是6.123233995736766e-17

为什么会发生这样的事情?

(请原谅我的英语不好)

【问题讨论】:

标签: javascript


【解决方案1】:

deg(90)大约等于90*Math.PI/180,您的结果大约等于0

所以,一切都很好;)

注意,它必须是近似的,因为没有办法精确地表示 π。

【讨论】:

  • 略高于6 不是真的近似等于零吗?
  • @adeneo, a little over 6 ? 6.123233995736766e-17 离 6 太远了。那是 6 * 10 ^ -17
  • @adeneo,这是标准的科学记数法。不用多解释了。
  • @adeneo 6.123233995736766e-17 是 0.00000000000000006123233995736766
  • @adeneo,这就是为什么我在评论中链接到一篇关于What Every Computer Scientist Should Know About Floating-Point Arithmetic 的文章:docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html 这样他们就不会感到困惑了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-16
  • 1970-01-01
相关资源
最近更新 更多