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
我该如何解决这个问题?
将角度从度数转换为弧度时,结果是一个通常不能完全表示为浮点数的数字.您只能使用大约16位数字.
因此,当你计算余弦时toRadians(60)
,你实际上计算的数字的余弦非常接近但不等于π/ 3.
您希望如何解决这个问题取决于您的应用程序.在绝大多数真实世界的应用程序中,像这样的微小不准确性确实没有什么区别.如果您想要很好地呈现结果,那么您可以简单地舍入到您想要的位数.