JavaScript数学给出了完全错误的结果

时间:2015-03-12 11:01:59

标签: javascript math floating-point floating-accuracy

我有一项任务,可以制作一个程序,可以计算某个区域图形下方的区域。 我的功能是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值和数组来存储值。

1 个答案:

答案 0 :(得分:1)

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