android - 三角函数值与实际不符

标签 android math floating-point trigonometry

我使用 toRadians() 转换值并找到这样的三角函数

dataMain = Math.cos(Math.toRadians(dataSub);

但是我有一个问题,比如 dataSub = 60

答案应该是0.5 但我程序中的答案是 0.50000000000001

甚至 dataSub = 30

dataMain = Math.sin(Math.toRadians(dataSub);

我程序中的答案是 0.49999999999994

我该如何解决这个问题?

最佳答案

当您将角度从度数转换为弧度时,结果是一个通常不能精确表示为 float 的数字。您只有大约 16 位数字可以使用。

因此,当您计算 toRadians(60) 的余弦值时,您实际上是在计算一个非常接近但不等于 π/3 的数的余弦值。

如何解决这个问题取决于您的应用程序。在绝大多数现实世界的应用程序中,像这样的微小错误实际上并没有什么不同。如果你想很好地呈现结果,那么你可以简单地四舍五入到你想要的位数。

关于android - 三角函数值与实际不符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7857427/

相关文章:

C: 浮点运算的结果总是归一化的吗?

android - 如何替换Android NavigationView HeaderView

javascript - 围绕圆移动对象javascript

c++ - 在 C++ 中使用 char 数组作为数学数字

java - 如何在Android中计算数字的平方

java - 如何确定数字是否可以精确表示为 float ?

c - 在 C 中处理大 float 据

android - 为 : ServiceRecord Kitkat 等待了足够长的时间

android - Android 上有类似 cron 的东西吗?

java - 每当日期从 DatePicker 更改时显示文本