我使用 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/