java - Math.cos、sin 和 tan 在 Java 中返回不准确的值

标签 java trigonometry

我正在用 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 ,它会给出一个非精确值。 Peek here to hear from the legend :-)

对于你的情况,你需要对cos的结果进行舍入。看看here

你可以这样做:

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

关于java - Math.cos、sin 和 tan 在 Java 中返回不准确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34836736/

相关文章:

java - 私有(private)接口(interface)或抽象类 : what are my choices

java - JSF 数据表对齐

java - 带有 parseDouble 的 Hadoop Mapreduce 代码在一个系统中给出异常,但在其他系统中运行良好?

javascript - 我怎样才能平分圆?

c++ - 基准三角查找表性能提升与 cpp 实现

java - 如何在Java中更新和刷新JTextField?

java - Android 从 HTML/PHP 获取字符串

java - 如何找到与象限无关的点与x轴的角度?

javascript - 使用 Javascript Math 创建圆形图案中的虚线

java - 如何加速这段代码?迭代矩阵的行和列的微积分