我不是一位经验丰富的编码员。最近,当我在Android上进行一些编码时,我发现Math.sin(Math.Pi)给出的值大于0而不是0.任何人都知道为什么会发生这种情况,修复是什么?
感谢。
编辑说明:
在sin(0)和sin(Pi)的情况下,我期待0值并且我以这种方式编程。因此,这会产生错误,因为我实际上是将返回值乘以某个数字。因此,我没有获得零,而是拥有更大的价值。
答案 0 :(得分:4)
正如javadoc所述
计算结果必须在精确结果的1 ulp范围内。
问题的一部分是你不能完全代表PI,所以你不能期望得到确切的结果。如果您认为这是一个错误,我建议您完成结果。