我正在努力创建一个简单的C#计算器。我有一个问题,计算器给我错误的结果,我发现我的代码没有任何问题。
例如,如果尝试计算以下计算 15 + 12 ,我会得到 30 而不是 27 的结果,这是正确的答案。
这是我的代码;任何帮助都将被视为一种新的编码方式。
namespace Calculator
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
resultBox.Text += "=";
}
//Function Add
private void button_add_Click(object sender, RoutedEventArgs e)
{
funcBox.Clear();
funcBox.Text += "+";
}
//Function Subtract
private void button_subtract_Click(object sender, RoutedEventArgs e)
{
funcBox.Clear();
funcBox.Text += "-";
}
//Function Multiply
private void button_mult_Click(object sender, RoutedEventArgs e)
{
funcBox.Clear();
funcBox.Text += "*";
}
//Function Divide
private void button_div_Click(object sender, RoutedEventArgs e)
{
funcBox.Clear();
funcBox.Text += "/";
}
//Clear button
private void button_clear_Click(object sender, RoutedEventArgs e)
{
numBox1.Clear();
numBox2.Clear();
funcBox.Clear();
resultBox.Clear();
resultBox.Text += "= ";
}
private void getResult(object sender, RoutedEventArgs e)
{
//Check if the both numboxes and funcbox contains something
if (numBox1.Text.Length > 0 && numBox2.Text.Length > 0)
{
if (funcBox.Text.Length > 0)
{
resultBox.Clear();
resultBox.Text += "= ";
decimal num1 = decimal.Parse(numBox1.Text);
decimal num2 = decimal.Parse(numBox1.Text);
decimal result = CalculateResult(num1, num2);
resultBox.Text += result;
}
else
{
MessageBox.Show("No function selected.", "Error", MessageBoxButton.OK, MessageBoxImage.Warning);
}
}
else
{
MessageBox.Show("You can't leave empty fields.", "Error", MessageBoxButton.OK, MessageBoxImage.Warning);
}
}
//Calculate the result
public decimal CalculateResult(decimal num1, decimal num2)
{
decimal res = 0;
if (funcBox.Text == "+")
{
res = num1 + num2;
}
else if (funcBox.Text == "-")
{
res = num1 - num2;
}
else if (funcBox.Text == "*")
{
res = num1 * num2;
}
else if (funcBox.Text == "/")
{
res = num1 / num2;
}
return res;
}
}
}
答案 0 :(得分:3)
您为foreach($arr as $a){
// Should this line
//$server->query($a);
// be
$local->query($a);
echo $a."<br><br>";
}
和num1
num2
答案 1 :(得分:0)
我认为你的问题在于这两行:
decimal num1 = decimal.Parse(numBox1.Text);
decimal num2 = decimal.Parse(numBox1.Text);
'num'应该与numBox2关联吗?
答案 2 :(得分:0)
在getResult函数中,您遇到了一个问题:
decimal num1 = decimal.Parse(numBox1.Text);
decimal num2 = decimal.Parse(numBox1.Text);
应该是
decimal num1 = decimal.Parse(numBox1.Text);
decimal num2 = decimal.Parse(numBox2.Text);
答案 3 :(得分:0)
看起来同时解析了num1和num2:
decimal num1 = decimal.Parse(numBox1.Text);
decimal num2 = decimal.Parse(numBox1.Text); // Parses same text
应该是:
十进制num1 = decimal.Parse(numBox1.Text);
十进制num2 = decimal.Parse( numBox2 .Text);