Math.cos,sin和tan在Java

时间:2016-01-17 09:05:12

标签: 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按钮也以类似的方式不准确(如果需要我可以进一步解释)。 代码出错在哪里,我该如何解决?

1 个答案:

答案 0 :(得分:2)

cos返回的值并不准确。当您输入90并使用方法Math.toRadians将其转换为弧度时,结果正好pi/2,因此当您将此非精确值传递给{{ 1}}它给出了一个非精确的值。 Peek here to hear from the legend: - )

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

你可以这样做:

cos