【发布时间】:2017-05-11 11:05:39
【问题描述】:
我正在尝试创建一个简单的 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;
}
}
}
【问题讨论】:
-
使用调试器,卢克!
-
试试:resultBox.Text += result.ToString();
-
十进制 num1 = decimal.Parse(numBox1.Text);十进制 num2 = decimal.Parse(numBox1.Text);因此 15+15 = 30
标签: c# decimal calculator