gpt4 book ai didi

java - 尝试用java编写科学计算器,但无法使指数按钮工作

转载 作者:太空宇宙 更新时间:2023-11-04 10:57:56 25 4
gpt4 key购买 nike

我正在尝试用 Java 编写一个带有 GUI 的科学计算器,到目前为止,除了指数按钮 (x^y) 之外,我已经能够完成所有操作。

这是我现在的按钮单击事件,但它不起作用,因为我不知道如何在只按一次按钮的情况下获取两个值。

private void btnExponentActionPerformed(java.awt.event.ActionEvent evt) {                                            

for (int i = 0; i < 2; i++)
{
if(i == 0)
{
double x = Double.parseDouble(String.valueOf(tfdDisplay.getText()));
}
else if(i == 1)
{
double y = Double.parseDouble(String.valueOf(tfdDisplay.getText()));
}
tfdDisplay.setText(null);
}
double ops = Math.pow(x, y);
tfdDisplay.setText(String.valueOf(ops));
}

我希望它接受文本字段中当前的值,然后让用户单击指数按钮,然后接受他们输入的下一个值作为实际指数值,然后在单击“=”按钮时计算答案。

我在网上查看并找到了一个视频,该视频展示了如何制作带有指数按钮的科学计算器,但是当我按照他的方法对按钮进行编码时,它无法正常工作。相反,它只是对文本字段内的内容进行平方,而不是让用户输入自己的指数。

这是计算器实际外观的图片,供引用。

pic

提前致谢!

编辑:这是我为“=”按钮编写的程序。

String answer;
secondnum = Double.parseDouble(tfdDisplay.getText());
if(operations == "+")
{
result = firstnum + secondnum;
answer = String.format("%.2f", result);
tfdDisplay.setText(answer);
}
else if(operations == "-")
{
result = firstnum - secondnum;
answer = String.format("%.2f", result);
tfdDisplay.setText(answer);
}
else if(operations == "*")
{
result = firstnum * secondnum;
answer = String.format("%.2f", result);
tfdDisplay.setText(answer);
}
else if(operations == "/")
{
result = firstnum / secondnum;
answer = String.format("%.2f", result);
tfdDisplay.setText(answer);
}

我应该将其添加到“=”按钮吗?

else if(operations == "^")
{
result = Math.pow(firstnum, secondnum);
answer = String.format("%.2f", result);
tfdDisplay.setText(answer);
}

最佳答案

所以,如果我理解正确的话,您可以点击按钮 digit,然后 ^,然后 digit,然后 =,此时,例如,2^4 作为 tfdDisplay 元素中的文本。然后你应该做的是分割文本并获取两个值,如下所示:

private void btnExponentActionPerformed(java.awt.event.ActionEvent evt) {
// Notice the double backslash, it's used because split wants a regular
// expression, and ^ means the beginning of the string in regular
// expressions, so you have to escape it using a backslash. The other
// one is needed because you should escape backslashes on strings to use
// as is
String parts[] = tfdDisplay.getText().split("\\^");
double x = Double.parseDouble(parts[0]);
double y = Double.parseDouble(parts[1]);
double ops = Math.pow(x, y);
tfdDisplay.setText(String.valueOf(ops));
}

关于java - 尝试用java编写科学计算器,但无法使指数按钮工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47190421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com