I updated the result
as below:
<Label x:Name="result" Content="0" Grid.ColumnSpan="4" HorizontalAlignment="Right" Language="es-ES" VerticalAlignment="Bottom" FontSize="50"/>
And Updated separator
and OperationButton_Click
like:
string separator = CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator;
.......
private void OperationButton_Click(object sender, RoutedEventArgs e)
{
Button button = (Button)sender;
//Evaluate button pressed
switch (button.Content.ToString())
{
case "AC":
result.Content = "0";
break;
case "+/-":
if (!(result.Content.ToString() == "0"))
{
result.Content = Convert.ToDouble((result.Content).ToString().Replace(separator, ".")) * -1;
}
break;
case "%":
if (!(result.Content.ToString() == "0"))
{
result.Content = Convert.ToDouble((result.Content).ToString().Replace(separator, ".")) / 100;
}
break;
case "÷":
firstNumber = Convert.ToDouble((result.Content).ToString().Replace(separator, "."));
operation = Operations.Division;
result.Content = "0";
break;
case "×":
firstNumber = Convert.ToDouble((result.Content).ToString().Replace(separator, "."));
operation = Operations.Multiplication;
result.Content = "0";
break;
case "-":
firstNumber = Convert.ToDouble((result.Content).ToString().Replace(separator, "."));
operation = Operations.Subtraction;
result.Content = "0";
break;
case "+":
firstNumber = Convert.ToDouble((result.Content).ToString().Replace(separator, "."));
operation = Operations.Sum;
result.Content = "0";
break;
case "=":
switch (operation)
{
case Operations.Division:
if (calcDone)
{
if (!(result.Content.ToString() == "ERROR"))
{
result.Content = Convert.ToDouble((result.Content).ToString().Replace(separator,".") )/ secondNumber;
}
}
else
{
//Check if division by 0
if (result.Content.ToString() == "0")
{
result.Content = "ERROR";
calcDone = true;
}
else
{
secondNumber = Convert.ToDouble((result.Content).ToString().Replace(separator, "."));
resultNumber = firstNumber / secondNumber;
result.Content = resultNumber;
calcDone = true;
}
}
break;
case Operations.Multiplication:
if (calcDone)
{
result.Content = Convert.ToDouble((result.Content).ToString().Replace(separator, ".")) * secondNumber;
}
else
{
secondNumber = Convert.ToDouble((result.Content).ToString().Replace(separator, "."));
resultNumber = firstNumber * secondNumber;
result.Content = resultNumber;
calcDone = true;
}
break;
case Operations.Subtraction:
if (calcDone)
{
result.Content = Convert.ToDouble((result.Content).ToString().Replace(separator, ".")) - secondNumber;
}
else
{
secondNumber = Convert.ToDouble((result.Content).ToString().Replace(separator, "."));
resultNumber = firstNumber - secondNumber;
result.Content = resultNumber;
calcDone = true;
}
break;
case Operations.Sum:
if (calcDone)
{
result.Content = Convert.ToDouble((result.Content).ToString().Replace(separator, ".")) + secondNumber;
}
else
{
secondNumber = Convert.ToDouble((result.Content).ToString().Replace(separator, "."));
//MessageBox.Show($"{firstNumber} + {secondNumber}");
resultNumber = firstNumber + secondNumber;
result.Content = resultNumber;
calcDone = true;
}
break;
}
break;
default:
if (!result.Content.ToString().Contains(separator))
{
result.Content = $"{result.Content}{button.Content}";
}
break;
}
Result picture is:
If the response is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.