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

Math.cos,sin和tan在Java中返回不正确的值

闻人梓
2023-03-14
问题内容

我正在使用带有Java GUI的计算器。该项目已完成,但是三角函数无法正常运行。这是cos函数的方法:

public void actionPerformed(ActionEvent evt) {
input = Double.valueOf(Display.getText());
ans = Math.cos(Math.toRadians(input));
Display.setText(String.valueOf(ans));
}

其中“显示”是文本区域。问题在于函数返回的值不正确。例如,当我输入90并单击cos按钮时,将返回数字6.123233995736766E-17。sin和tan按钮也以类似的方式不准确(如有必要,我可以进一步解释)。代码哪里出了问题,我该如何解决


问题答案:

传回的值cos不正确。当您输入90并使用方法将其转换为弧度时Math.toRadians,结果
完全是pi/2,因此当您将此非精确值传递给cos它时,它会给出非精确值。偷看这里,听听传说中的消息
:-)

根据您的情况,您需要对的结果取整cos。在这里看看

您可以执行以下操作:

public void actionPerformed(ActionEvent evt) {
    input = Double.valueOf(Display.getText());
    ans = Math.cos(Math.toRadians(input));
    Display.setText(String.format("%.6f", ans));
}


 类似资料:
  • 问题内容: 我刚遇到getResourceAsStream()一个非常奇怪的问题。 在我的产品项目JUnit测试中,我使用getResourceAsStream()读取测试数据,我发现getResourceAsStream()有时会替换一些字节: 在此项目中的输出如下所示: D0 9A D1 80 D0 B8 D0 BC D0 B8 D0 BD D0 B0 D0 BB D0 B8 D1 81 D1

  • 问题内容: def size_of_dir(dirname): print(“Size of directory: “) print(os.path.getsize(dirname)) 是有问题的代码。dirname是一个目录,其中包含 130个 文件,每个文件约 1kb 。当我调用此函数时,它返回 4624 ,这 不是 目录的大小…为什么? 问题答案: 此值(4624B)代表的大小 文件 是 描

  • 你好,我正在复习Java练习。我有一个非常简单的程序:有两个int值,以及一个布尔变量。 i) 如果其中一个值为负值,另一个值为正值,则程序将返回true。 ii)但是,如果布尔变量为true,则程序只能在两个int值均为负值时返回true。 我已经用一堆int值对此进行了测试,但是一旦我给这个方法(1,-1)的值,以及布尔值设置为true,程序似乎就会崩溃。任何帮助或解释都将不胜感激。

  • 我正在使用postgis计算两个地理坐标之间的距离。 它返回给我53536.743496517米,大约等于54公里,但实际距离是103公里,我通过http://boulter.com/gps/distance/ 我在询问中是否做错了什么?

  • 我正在尝试在代码中使用NSPredicate搜索名称。搜索工作正常,但不会返回适当的结果。当我搜索一个名称(例如“Colin”)时,它会返回表中的所有其他名称或另一个名称(例如“Mike”),但如果我输入一个不存在的随机字符串,它会返回:“找不到结果”。当我在搜索栏中键入一个名字(例如Lisa)时,我希望它能找到这个名字(Lisa)并返回它,但它没有这样做 这是我的代码: 自己name返回表中的所

  • 我正在尝试获取关于用户使用哪个浏览器调用API的信息。我在网上搜索,似乎应该使用来自请求头的“用户-代理”。 这里会有什么问题?为什么头球会出错? 提前谢谢!