Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我不是经验丰富的编码员。最近,当我在 Android 上进行一些编码时,我发现 Math.sin(Math.Pi) 给出的值大于 0 而不是 0。任何人都知道为什么会发生这种情况以及解决方法是什么?
谢谢。
编辑说明:
在 sin(0) 和 sin(Pi) 的情况下,我期待 0 值并且我以这种方式编程。所以,这给出了一个错误,因为我实际上是在将返回值与某个数字相乘。因此,我没有得到零,而是拥有更大的价值。
正如javadoc所说
计算结果必须在精确结果的 1 ulp 范围内。
部分问题是您无法准确表示 PI,因此您不能期望得到太多准确的结果。如果您认为这是一个错误,我建议您对结果进行四舍五入。