三角函数值与现实不符

1 math floating-point android trigonometry

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

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

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

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

甚至 dataSub = 30

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

在我的程序中回答的是 0.49999999999994

我该如何解决这个问题?

Jef*_*Sax 5

将角度从度数转换为弧度时,结果是一个通常不能完全表示为浮点数的数字.您只能使用大约16位数字.

因此,当你计算余弦时toRadians(60),你实际上计算的数字的余弦非常接近但不等于π/ 3.

您希望如何解决这个问题取决于您的应用程序.在绝大多数真实世界的应用程序中,像这样的微小不准确性确实没有什么区别.如果您想要很好地呈现结果,那么您可以简单地舍入到您想要的位数.