javascript - 度数的 cos 与等效弧度的 cos 不匹配

标签 javascript math radians

JavaScript 中的所有数学函数都使用弧度代替度数。 然而,它们要么不相等,要么我离题太远。

从度数到弧度的转换是:

var rad = angle * Math.PI / 180

90 度 Angular equals 1.57079633弧度

90 度 Angular 的余弦 equals 0.
1.57079633 弧度的余弦 equals -3.20510345 × 10-9.

请注意,在 Javascript 中,一切都一步完成以避免舍入错误:

var cos = Math.cos(angle * Math.PI / 180);

我显然在这里遗漏了一些明显的东西,但男孩是不是搞砸了代码。

最佳答案

everything is done in one step to avoid rounding errors

这如何避免舍入错误?这只是意味着舍入误差在单独的变量中不可用,仅此而已。

pi 的true 值不能准确表示为 float ,所以 pi/2 的真值也不能。因此,您不能为 Math.cos 提供获得 0 所需的确切值。但是嘿 - 10-9 是一个非常非常小数字。这意味着如果您绘制一条 10,000 公里长的线,您最终会偏离相关轴 1 厘米。

这正是您在处理 float 时应该期待的事情。不要与相等进行比较 - 在​​一定的公差范围内进行比较。

关于javascript - 度数的 cos 与等效弧度的 cos 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3745757/

相关文章:

javascript - 应用程序制作工具删除表中的项目并更新

javascript - Golang 使用 AJAX 上传文件

javascript - RegExp 匹配返回整个单词而不是组

math - n 个半径为 'r' 的圆的交点面积

javascript - 如何在不使用 * 的情况下获得两个整数的乘积

因为结果不正确

java - 显示 Math.tan() 的值(以度为单位)?

javascript - 是否可以通过 Node js 服务器将 sip 请求转发到另一个 asterisk 服务器?

多维优化/寻根/某物的算法

iOS 指南针导航