JavaScript数学给出了完全错误的结果
我有一项任务,要做一个程序,可以计算出某个区域中图形下方的面积。 我的函数是JavaScript数学给出了完全错误的结果,javascript,math,floating-point,floating-accuracy,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,在这里,我期望3或4周围出现一些东西 我已经读到,它可能是由浮点行为的问题引起的,但它不应该给那么大的区别吗?我不明白( 我使用
f(x)=3+(tan(x))^2
我已将其转换为javascript,因此看起来如下所示:
var y = 3 + Math.pow(Math.tan((x)*(180/Math.PI)), 2)
这在某些x值下给出了正确的结果。但有时,例如,在x=3.4
,它会给出一个奇怪的数字,比如16,在这里,我期望3
或4
周围出现一些东西
我已经读到,它可能是由浮点行为的问题引起的,但它不应该给那么大的区别吗?我不明白(
我使用for循环来更改
x
值,并使用and数组来存储值。x*180/π
将以弧度为单位的角度x
转换为度。但这几乎肯定是错误的:JavaScript三角函数期望其参数以弧度为单位。因此,如果角度以弧度为单位,则不需要任何参数转换,如果是以度为单位,你应该反过来转换,即x*π/180
Math.tan((x)*(180/Math.PI))
Uh?你为什么要在那里转换成度?Math.tan()
期望弧度。噢,哇..我一定是误解了我在另一个帖子中读到的内容。谢谢!我会编辑它的…当然。现在对我来说这很明显。非常感谢!我很高兴它这么简单!谢谢!:)