我正在研究一个带有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按钮也以类似的方式不准确(如果需要我可以进一步解释)。 代码出错在哪里,我该如何解决?
答案 0 :(得分:2)
cos
返回的值并不准确。当您输入90并使用方法Math.toRadians
将其转换为弧度时,结果不正好pi/2
,因此当您将此非精确值传递给{{ 1}}它给出了一个非精确的值。 Peek here to hear from the legend: - )
至于你的情况,你需要对cos
的结果进行舍入。看看here
你可以这样做:
cos