Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript数学给出了完全错误的结果_Javascript_Math_Floating Point_Floating Accuracy - Fatal编程技术网

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()
期望弧度。噢,哇..我一定是误解了我在另一个帖子中读到的内容。谢谢!我会编辑它的…当然。现在对我来说这很明显。非常感谢!我很高兴它这么简单!谢谢!:)