Browse Source

Calculator: % now works like Windows Calc.exe

import/raw
brianlagunas_cp 16 years ago
parent
commit
49351df95e
  1. 20
      Main/Source/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/Calculator.cs
  2. 20
      Release/v1.4.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/Calculator.cs

20
Main/Source/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/Calculator.cs

@ -285,9 +285,9 @@ namespace Microsoft.Windows.Controls
case Operation.Divide: case Operation.Divide:
newValue = CalculatorUtilities.Divide(_previousValue, currentValue); newValue = CalculatorUtilities.Divide(_previousValue, currentValue);
break; break;
case Operation.Percent: //case Operation.Percent:
newValue = CalculatorUtilities.Percent(_previousValue, currentValue); // newValue = CalculatorUtilities.Percent(_previousValue, currentValue);
break; // break;
case Operation.Sqrt: case Operation.Sqrt:
newValue = CalculatorUtilities.SquareRoot(currentValue); newValue = CalculatorUtilities.SquareRoot(currentValue);
break; break;
@ -388,8 +388,18 @@ namespace Microsoft.Windows.Controls
Calculate(Operation.Divide); Calculate(Operation.Divide);
break; break;
case CalculatorButtonType.Percent: case CalculatorButtonType.Percent:
Calculate(Operation.Percent); if (_lastOperation != Operation.None)
break; {
decimal currentValue = CalculatorUtilities.ParseDecimal(DisplayText);
decimal newValue = CalculatorUtilities.Percent(_previousValue, currentValue);
DisplayText = newValue.ToString();
}
else
{
DisplayText = "0";
_showNewNumber = true;
}
return;
case CalculatorButtonType.Sqrt: case CalculatorButtonType.Sqrt:
Calculate(Operation.Sqrt, Operation.None); Calculate(Operation.Sqrt, Operation.None);
break; break;

20
Release/v1.4.0/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/Calculator.cs

@ -285,9 +285,9 @@ namespace Microsoft.Windows.Controls
case Operation.Divide: case Operation.Divide:
newValue = CalculatorUtilities.Divide(_previousValue, currentValue); newValue = CalculatorUtilities.Divide(_previousValue, currentValue);
break; break;
case Operation.Percent: //case Operation.Percent:
newValue = CalculatorUtilities.Percent(_previousValue, currentValue); // newValue = CalculatorUtilities.Percent(_previousValue, currentValue);
break; // break;
case Operation.Sqrt: case Operation.Sqrt:
newValue = CalculatorUtilities.SquareRoot(currentValue); newValue = CalculatorUtilities.SquareRoot(currentValue);
break; break;
@ -388,8 +388,18 @@ namespace Microsoft.Windows.Controls
Calculate(Operation.Divide); Calculate(Operation.Divide);
break; break;
case CalculatorButtonType.Percent: case CalculatorButtonType.Percent:
Calculate(Operation.Percent); if (_lastOperation != Operation.None)
break; {
decimal currentValue = CalculatorUtilities.ParseDecimal(DisplayText);
decimal newValue = CalculatorUtilities.Percent(_previousValue, currentValue);
DisplayText = newValue.ToString();
}
else
{
DisplayText = "0";
_showNewNumber = true;
}
return;
case CalculatorButtonType.Sqrt: case CalculatorButtonType.Sqrt:
Calculate(Operation.Sqrt, Operation.None); Calculate(Operation.Sqrt, Operation.None);
break; break;

Loading…
Cancel
Save