-4

我不是经验丰富的编码员。最近,当我在 Android 上进行一些编码时,我发现 Math.sin(Math.Pi) 给出的值大于 0 而不是 0。任何人都知道为什么会发生这种情况以及解决方法是什么?

谢谢。

编辑说明:

在 sin(0) 和 sin(Pi) 的情况下,我期待 0 值并且我以这种方式编程。所以,这给出了一个错误,因为我实际上是在将返回值与某个数字相乘。因此,我没有得到零,而是拥有更大的价值。

4

1 回答 1

4

正如javadoc所说

计算结果必须在精确结果的 1 ulp 范围内。

部分问题是您无法准确表示 PI,因此您不能期望得到太多准确的结果。如果您认为这是一个错误,我建议您对结果进行四舍五入。

于 2013-06-07T11:23:23.933 回答