[英]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.