From 2e5e1afd1feea33a91177ecf6710231901dc0650 Mon Sep 17 00:00:00 2001 From: brianlagunas_cp Date: Wed, 6 Apr 2011 16:57:53 +0000 Subject: [PATCH] Calculator: % now works like Windows Calc.exe --- .../Calculator/Implementation/Calculator.cs | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/Calculator.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/Calculator.cs index f00f3ffe..b5ad89e6 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/Calculator.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/Calculator.cs @@ -285,9 +285,9 @@ namespace Microsoft.Windows.Controls case Operation.Divide: newValue = CalculatorUtilities.Divide(_previousValue, currentValue); break; - case Operation.Percent: - newValue = CalculatorUtilities.Percent(_previousValue, currentValue); - break; + //case Operation.Percent: + // newValue = CalculatorUtilities.Percent(_previousValue, currentValue); + // break; case Operation.Sqrt: newValue = CalculatorUtilities.SquareRoot(currentValue); break; @@ -388,8 +388,18 @@ namespace Microsoft.Windows.Controls Calculate(Operation.Divide); break; case CalculatorButtonType.Percent: - Calculate(Operation.Percent); - break; + if (_lastOperation != Operation.None) + { + decimal currentValue = CalculatorUtilities.ParseDecimal(DisplayText); + decimal newValue = CalculatorUtilities.Percent(_previousValue, currentValue); + DisplayText = newValue.ToString(); + } + else + { + DisplayText = "0"; + _showNewNumber = true; + } + return; case CalculatorButtonType.Sqrt: Calculate(Operation.Sqrt, Operation.None); break;