java - 如何解决java中的cos 90问题?

标签 java math trigonometry

<分区>

我在使用 Math.cos 函数在 Java 中计算 cosinus 90 时遇到了一些问题:

public class calc{
      private double x;
      private double y;

      public calc(double x,double y){
                   this.x=x;
                   this.y=y;
      }

      public void print(double theta){
           x = x*Math.cos(theta);
           y = y*Math.sin(theta);
           System.out.println("cos 90 : "+x);
           System.out.println("sin 90 : "+y);
      }

      public static void main(String[]args){
           calc p = new calc(3,4);
           p.print(Math.toRadians(90));

      }

当我计算 cos90 或 cos270 时,它给出了荒谬的值。它应该是 0。我用 91 或 271 进行了测试,给出了接近 0 的值,这是正确的。

我应该怎么做才能使 cos 90 = 0 的输出?因此,它使输出 x = 0 和 y = 4。

多谢指教

最佳答案

您得到的很可能是非常非常小的数字,这些数字以指数表示法显示。你得到它们的原因是因为 pi/2 在 IEEE 754 符号中不能完全表示,所以没有办法获得 90/270 度的精确余弦。

关于java - 如何解决java中的cos 90问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5263653/

相关文章:

java - JAVA在命令提示符下构建 war

javascript - 旋转 Canvas 的一部分

c++ - 在 C++ 中将 float 转换为 int

math - 是否存在凸多边形的周长大于其边界框的周长的情况?

math - 计算角度是否在两个角度之间

java - 复制 joda LocalTime 的直接方法是什么?

java - 放置随机圆圈而不重叠(并且不使用蛮力)?

java - 如何关闭 TCP Keepalive?

math - 计算环绕平面上两点之间的(线的)角度

c - 了解光线转换方法