【问题标题】:Math.cos, sin and tan returning inaccurate values in JavaMath.cos、sin 和 tan 在 Java 中返回不准确的值
【发布时间】:2016-01-17 09:05:11
【问题描述】:

我正在开发一个带有 Java 图形用户界面的计算器。项目已完成,但三角函数无法正常工作。这是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 按钮也以类似的方式不准确(如有必要,我可以进一步解释)。 代码哪里出错了,我该如何解决这个问题

【问题讨论】:

标签: java trigonometry


【解决方案1】:

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));
} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多