How should an application handle the addition of a percentage? Let's say a user inputs two different string, expecting a result for each one. They both contain either addition or subtraction of a percentage. How should this be handled?
My immediate thoughts are that addition and subtraction are commutative, and when we talk about "adding 10%" to a number, or "subtracting 20%", what we are really talking about is multiplying by 110%, or 80% respectively.
Examples
10 + 5 - 10% and 10 - 10% + 5. 
Google
    10 + 5 - 10% = 14.5
    10 - 10% + 5 = 14

Wolfram Alpha
    10 + 5 - 10% = 13.5
    10 - 10% + 5 = 13.5

web2.0calc.com
    10 + 5 - 10% = 13.5
    10 - 10% + 5 = 14

Excel
    =10 + 5 - 10% = 1490% = 14.9
    =10 - 10% + 5 = 1490% = 14.9

Casio Calculator
    10 + 5 - 10% = 14.5
    10 - 10% + 5 = 14

 A: $10%$ really just represents $\frac{10}{100} = 0.1$, and I always treat percentages this way for multiplication, addition, etc. Parsing for these allows you to only deal with standard floating point numbers, which are usually handled more easily. If you have any specific needs you can adjust accordingly. Under this definition:
$$10 + 5 - 10\% = 10+5-0.1 = 14.9$$
$$10 - 10\% + 5 = 14.9$$
If you are trying to remove 10% of a quantity it is written x-10%x = x(1-10%) = 0.9x. This requires multiplication though, and is not represented only using addition or subtraction.
Of course, if this is your program you can write it however you like, as long as the end user knows what you have decided what $15 - 10\%$ means
A: You are trying to use an ambiguous process to come out with a unique correct solution.  That's impossible!
The way to come up with a workable solution, is to impose some rules, let the user know them, and implement them in your application.  For example, you can specify the order of execution, the priority of operands, and the use of parenthesis and brackets to give the user control of the order of execution.  The order of execution is not commutative.  Most applications give a higher priority to multiplication and division than addition and subtraction.  Finding percent, involves multiplication/division, so this operations will be done before addition or subtraction.  In the absence of any controls, default execution will be from left to right.  Under these "rules," your examples will be calculated as follows: 1) the 5 will be added to the 10 making a total of 15, then 10% of 15 (1.5) will be subtracted from 15, giving a final result of 13.5; 2) 10% of 10 (1) is subtracted from10, giving 9, 5 is then added giving a final result of 14. If the user does not like these default results, then the order of execution must be specified.  Changing the 1st example to 10 + (5 -10%) will give a final result of 10 + (5 - .5) 14.5.  These examples make it clear that different results are obtained depending on the order of execution.   
