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

标签 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 值,并使用数组来存储这些值。

最佳答案

x*180/π 将 Angular x(以弧度为单位)转换为度数。但这几乎肯定是错误的:JavaScript 三 Angular 函数期望其参数以弧度表示。因此,如果您的 Angular 以弧度为单位,则根本不需要任何转换,而如果以度为单位,则应进行相反的转换,即 x*π/180

关于JavaScript 数学给出了完全错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29007997/

相关文章:

python - pandas:类型转换返回错误的值

math - float 学坏了吗?

javascript - TypeError : this. state.show 不是一个函数

javascript - 在不同的 .js 文件中使用 .js 文件中的函数

c++ - 用 C++ 表示离散傅里叶变换的复数

c++ - 如何对浮点平方根进行塔克曼舍入

javascript - 当路由/模板不仅仅包含集合时,如何从集合中获取数据?

javascript - 在一定距离后使div随页面滚动

c# - 在 C# 中如何除整数并得到 double 值?

java - 为什么将 float 除以整数返回 0.0?