[英]x^y calculator Button - in windows forms C#
`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 标志为真,则将第一个输入和第二个输入转换为双精度并传递给 Math.Pow()。 将结果转换为字符串并显示在文本框中。
只有一个文本字段。
2^2 给我 419,000。
需要先检查指数标志 - 在计算结果之前。 此外, calcHistory
可能也需要正确更新。
private void equals_Click(object sender, EventArgs e)
{
if (exponentFlag == true)
{
num = Convert.ToDouble(baseNum);
double expo = Convert.ToDouble(textBox1.Text);
result = Math.Pow(num, expo).ToString();
exponentFlag = false;
equation = "" + baseNum + "^" + expo;
}
else
{
result = equation;
result = new DataTable().Compute(result, null).ToString();
}
textBox1.Text = result;
calcHistory += equation + " = " + result + "\n";
}
其他注意事项:
string
而不是String
bool
而不是Boolean
if (exponentFlag == true)
与if (exponentFlag)
相同result = exponent
之类的东西令人困惑,因为指数显然不是结果。num
可以是局部变量假设您有integer1的textBox1和integer2的textBox2 。 您还有“ x^y ”按钮和“ = ”按钮。 您的结果还有textBox3 。
现在你要做的是通过检查它们是否不等于 string.empty 等来确保提供的数字是否正确。
如果你确定,你可以使用简单的:
int integer1 = Convert.ToInt32(textBox1.Text);
int integer2 = Convert.ToInt32(textBox2.Text);
textBox3.Text = Convert.ToInt32(Math.Pow(integer1 , integer2 )).ToString();
它对我有用,检查一下。
但
更新:
如果你的计算器只有一个文本框,你也可以这样做:
int indexOfPower = textBox3.Text.IndexOf("^");
int integer1 = Convert.ToInt32(textBox3.Text.Substring(0, indexOfPower));
int integer2 = Convert.ToInt32(textBox3.Text.Substring(indexOfPower+1));
textBox3.Text = Convert.ToInt32(Math.Pow(integer1, integer2)).ToString();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.