`String calcHistory = "";
String SavedCalcHistory = "";
String result = "";
String equation = "";
String baseNum = "";
double num;
Boolean exponentFlag = false;`
private void digits_Click(object sender, EventArgs e)
{
Button b = (Button)sender;
equation += b.Text;
textBox1.Text += b.Text;
}
private void ExponentInput_Click(object sender, EventArgs e)
{
baseNum = textBox1.Text;
textBox1.Text = "";
exponentFlag = true;
}
private void equals_Click(object sender, EventArgs e)
{
result = equation;
result = new DataTable().Compute(result, null).ToString();
calcHistory += equation + " = " + result + "\n";
textBox1.Text = result;
if(exponentFlag == true)
{
num = Convert.ToDouble(baseNum);
double expo = Convert.ToDouble(textBox1.Text);
textBox1.Text = Math.Pow(num, expo).ToString();
}
exponentFlag = false;
}
数字按钮上引用了Digit_click。
Exponent_Click在x^y按钮上引用。用户输入一个数字,单击x^y按钮,输入数字(指数)
点击=按钮时,如果equals_click中的Exponent标志为true,则将第一个输入和第二个输入转换为双精度型并传递给Math.Pow()。将结果转换为String并显示在文本框中。
只有一个文本字段。
2^2给我419,000。
2条答案
按热度按时间t1rydlwq1#
在计算结果之前,首先需要检查指数标志。另外,
calcHistory
可能也需要正确更新。其他注意事项:
string
代替String
bool
代替Boolean
if (exponentFlag == true)
与if (exponentFlag)
相同result = exponent
这样的东西是令人困惑的,因为指数显然不是结果。num
可以是局部变量0lvr5msh2#
假设您有textBox1用于integer1,textBox2用于integer2。您还有**"x^y"按钮和"="按钮。还有textBox3**用于您的结果。
现在你要做的是通过检查它们是否等于string.empty等来确保提供的数字是否正确。
如果确定,可以使用简单的:
对我来说很管用,看看吧。
但是
更新:
如果您的计算器只有一个textBox,您也可以这样做: