当前位置: 首页 > 面试题库 >

如何解决java中的cos 90问题?[重复]

武骁
2023-03-14
问题内容

这个问题已经在这里有了答案

浮点数学运算是否损坏?
(31个答案)

4年前关闭。

使用Math.cos函数在Java中计算余弦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度的精确余弦。



 类似资料:
  • 在这里,我试图从mongodb集合中获取最新的记录键p_id值,但得到的错误如下:SyntaxError:await仅在异步函数中有效。那么如何解决这个问题呢? 数据控制器。js:

  • 问题内容: 我该如何克服Java android中双精度乘法的精度问题?请注意,我正在将字符串值转换为double值。 例如:当我将两个double值相乘时: 我得到以下结果:0.8999999999999999 我得到的一些结果是。 0.6 * 3 = 1.7999999999999998; 0.2 * 0.2 = 0.04000000000000001; 等等 除了上述结果外,我想得到以下结果

  • 本文向大家介绍JAVA如何解决并发问题,包括了JAVA如何解决并发问题的使用技巧和注意事项,需要的朋友参考一下 并发问题的根源在哪 首先,我们要知道并发要解决的是什么问题?并发要解决的是单进程情况下硬件资源无法充分利用的问题。而造成这一问题的主要原因是CPU-内存-磁盘三者之间速度差异实在太大。如果将CPU的速度比作火箭的速度,那么内存的速度就像火车,而最惨的磁盘,基本上就相当于人双腿走路。 这样

  • 本文向大家介绍如何解决项目中java heap space的问题,包括了如何解决项目中java heap space的问题的使用技巧和注意事项,需要的朋友参考一下 起因 17年的一个项目出了OOM(java heap space)问题,眼下有个问题:法院项目,不能外网,一连接外网高院会直接定位到计算机,发出警报(档案的机密性啊)不能远程,那只能视频教他们怎么做了,全程和一个文员说代码,真的很累==

  • 抱歉打扰你们了。我知道,这个问题已经问了好几遍了。然而,我就是无法解决我的问题。 所以,我一直在尝试创建一个网球计分系统,当你点击两个按钮之一,赢按钮或输按钮时,就会显示出分数。我有一个按钮,他们可以在那里添加他们的名字到计分系统。当一个选手赢了两盘,比赛就结束了。然后我试着印上他们的名字,上面写着,____赢了比赛。当我尝试使用打印它们名称的变量时,我得到的结果是:[objectHTMLButt

  • 我试图理解RFC 7230中提到的TCP重置问题:HTTP/1.1消息语法和路由,第6.6节: 6.6.拆卸 Connection header字段(第6.1节)提供了一个“close”连接选项,当发送方希望在当前请求/响应对之后关闭连接时,应发送该选项。 因此HTTP/1.1具有持久连接,这意味着可以在同一连接上发送多个HTTP请求/响应对。 发送“关闭”连接选项的客户端不得在该连接上发送更多请