【问题标题】:JavaScript math gives completely wrong resultsJavaScript 数学给出了完全错误的结果
【发布时间】:2015-03-12 11:01:58
【问题描述】:

我有一个任务要编写一个程序,该程序可以计算某个区域中图形下方的面积。 我的功能是f(x)=3+(tan(x))^2 我已经把它变成了javascript,所以它看起来像这样:

var y = 3 + Math.pow(Math.tan((x)*(180/Math.PI)), 2)

这是在某些 x 值处给出正确的结果。但有时,例如。在x = 3.4,它给出了一个奇怪的数字,比如 16,我预计在 34 附近会有一些东西。

我已经读过它可能是由浮点行为问题引起的,但它不应该有那么大的区别吗?我不明白。 :(

我使用 for 循环来更改 x 的值,并使用数组来存储这些值。

【问题讨论】:

  • Math.tan((x)*(180/Math.PI)) 嗯?你为什么要在那里转换学位? Math.tan() 需要弧度。
  • 哦哇哦..我一定误解了我在另一个线程中读到的东西。谢谢!我会编辑
  • 它工作了......当然。现在对我来说很明显。非常感谢!我很高兴它是如此简单!谢谢! :)

标签: javascript math floating-point floating-accuracy


【解决方案1】:

x*180/π 将角度x(以弧度给出)转换为度数。但这几乎肯定是错误的:JavaScript 三角函数期望它们的参数以弧度表示。所以如果你的角度是弧度,你根本不需要任何转换,如果是度数,你应该反过来转换,即x*π/180

【讨论】:

    猜你喜欢
    • 2015-02-11
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多