Menu

Search toolsChangelog

to move to openDescribe the problem, not the tool

Percentage calculator

The four questions people actually ask about percentages, plus the one they ask next, in a single calculator: what X% of Y is, what percentage one number is of another, the rise or fall between two figures, and a number with a percentage added or taken off. Every answer comes with the amount, the rate and the running total, so the figure cannot be read as the wrong quantity.

Each question uses the same two numbers below in a different order.

In "15% of 200" this is 15. In "from 40 to 50" it is 40, the value you started from.

In "15% of 200" this is 200. In "from 40 to 50" it is 50, the value you ended at.

Answer
30
The answer to the question chosen above. In the two "what percentage" questions it is a percentage; in the other three it is an amount.
In words
15% of 200 is 30.
The amount
30
As a percentage
15.00%
Starting value plus the amount
230

The same base at common percentages

1.00%2202198
2.00%4204196
5.00%10210190
10.00%20220180
12.50%25225175
15.00%30230170
20.00%40240160
25.00%50250150
30.00%60260140
40.00%80280120

Results are provided as-is, with no warranty of accuracy. The method and its sources are published below so you can check the working.

How it works

What this works out

Percentages are five questions wearing one word, and most calculators answer only the first. “What is 15% of 200” and “15 is what per cent of 200” use the same two numbers and give different answers, and the difference between “the price rose 25%” and “the price is 25% of what it was” is somebody’s rent.

So the mode selector is the tool. Pick the question, put the same two numbers in both boxes whichever question you picked, and the panel shows all four related quantities at once: the answer, the amount, that amount as a rate, and the starting value with the amount applied. Reading them together is what stops a percentage being mistaken for an amount.

The method

Underneath the five modes there is one calculation. A percentage question always has a base — the number the rate is measured against — a rate, an amount equal to base x rate / 100, and a total afterwards equal to base + amount. Choosing a mode chooses which two of those four you are supplying; the other two follow.

Two choices in that are worth stating. The first is that percentage change divides by the starting value, never the ending one. From 40 to 50 the difference is 10, and 10 over 40 is 25%; 10 over 50 would be 20%, which is the answer to “50 fell to 40”, a different question. The second is that a decrease is stored as a negative rate rather than as a subtraction. That keeps the amount signed and keeps after = base + amount true in all five modes, so the panel never has to special-case a direction — and a negative rate typed into the increase mode does the sensible thing on its own.

The arithmetic runs in decimal rather than in the browser’s binary floating point. A JavaScript number is an IEEE 754 double, which cannot hold 1.15 or 0.1 exactly, so 1.15 x 0.1 evaluates to 0.11499999999999999. On a page where somebody is checking a discount that is a wrong answer, however small, so every figure here goes through arbitrary-precision decimal arithmetic and is rounded once, at the end, to ten places.

Before you read on

From 40 to 50 is a rise of 25%. What is the fall from 50 back to 40?

  • The difference is the same. The base it is measured against is not.

  • Yes: 10 over 50, because 50 is now the starting value.

  • Percentage change has no such symmetry to average.

20%. Percentage change divides by the starting value, never the ending one — so going up it is 10 over 40, and coming back down it is 10 over 50. The two directions of the same move are not the same percentage and never can be, which is why a 50% fall needs a 100% rise to undo it. That single rule is behind most of the arguments people have about this arithmetic.

One calculation under all five modes
  1. amount = base x rate / 100

    The only multiplication there is. The base is whatever the rate is measured against.

  2. after = base + amount

    And the total afterwards is always the base plus it. A decrease is a negative rate, not a subtraction, which keeps this line true in every mode.

  3. rate = amount / base x 100

    The same equation rearranged, for when you have the amount and want the rate. That is the "A is what % of B" mode.

  4. rate = (b - a) / a x 100

    Percentage change is that line again, with the difference as the amount and the starting value as the base. From 40 to 50 is 10 over 40, not 10 over 50.

A worked example

The same handful of numbers through all five modes:

QuestionABAnswerThe amountAs a percentageStart plus the amount
A% of B15200303015%230
A is what % of B30200153015%230
From A to B4050251025%50
A increased by B%200152303015%230
A decreased by B%802064-16-20%64

The arithmetic, written out:

15% of 200
  200 x 15 / 100   =  30
  200 + 30         = 230

From 40 to 50
  50 - 40          =  10
  10 / 40 x 100    =  25

80 decreased by 20%
  80 x -20 / 100   = -16
  80 + -16         =  64

And the case that decides whether the arithmetic is done properly:

10% of 1.15
  decimal          = 0.115
  binary float     = 0.11499999999999999

The table below the result runs the same base past the percentages people ask for most, with your own rate slotted into place among them. At a base of 200 that is 2, 4, 10, 20, 25, 30, 40, 50, 60, 80, 100, 120, 150, 180 and 200, and it downloads as a spreadsheet.

These are the same numbers asserted in this tool’s test file, so if the formula ever changes without this page changing with it, the build fails.

What it does not do

It does not know what your numbers are. There is no currency, no unit and no rounding to pence, because 0.435 is the right answer to 5% of 8.70 and turning it into 0.44 is a decision only you can make. It does not compound: five consecutive 10% rises are not a 50% rise, and working that out is a job for a growth calculator rather than this one. It does not handle percentage points as a separate quantity — the FAQ explains the difference, but the boxes take plain numbers. And with a negative starting value it reports the textbook sign, which is the size of the change rather than its direction on the number line.

That growth calculator is compound interest, which applies the rise again to the result instead of once to the start. It is the same percentage doing a different job.

The formula

Every percentage question is the same four quantities:

  base     the number the percentage is measured against
  percent  the rate
  amount   base x percent / 100
  after    base + amount

Each mode fixes two of them and the other two follow:

  A% of B             base = B,  percent = A
  A is what % of B    base = B,  amount  = A,      percent = amount / base x 100
  From A to B         base = A,  amount  = B - A,  percent = amount / base x 100
  A increased by B%   base = A,  percent = B
  A decreased by B%   base = A,  percent = -B

after = base + amount, in every mode, including the ones where the amount
is negative.

When base = 0 the percentage is undefined and the tool says so rather than
dividing.

What it assumes

  • Percentage change is measured against where you started, never where you ended. From 40 to 50 is a 25% rise; the same 10 over 50 would be 20%, and the two are different answers to different questions.
  • With a negative starting value the sign follows the textbook formula rather than the direction of travel. From -40 to -50 reads as a 25% increase, because the size of the figure grew by a quarter.
  • A base of zero has no percentage, so the answer is a dash. An infinite figure on a page somebody is checking a bill against is worse than no figure at all.
  • Arithmetic is decimal, not binary floating point. 10% of 1.15 comes out as 0.115 rather than 0.11499999999999999, which is what the same sum gives in a double.
  • Figures are carried to ten decimal places and displayed to two. The sentence beside the answer rounds to four, because a repeating decimal written out in full is unreadable in prose.
  • Nothing is rounded to a currency. The tool does not know whether the numbers are pounds, kilograms or exam marks, so it will not silently turn 0.435 into 0.44.

Common questions

How do I work out the percentage change between two numbers?

Subtract the old value from the new one, divide by the old value, and multiply by 100. The division is always by where you started, which is the step people skip: from 40 to 50 is a 25% rise, and from 50 to 40 is a 20% fall, even though both moved by ten. A change is only meaningful relative to its own starting point.

Why does a 50% fall not get undone by a 50% rise?

Because the second percentage is taken of a smaller number. 100 less 50% is 50, and 50 plus 50% is 75, not 100. Getting back to 100 from 50 takes a 100% rise. The same asymmetry is why two stacked discounts never add up to the sum of the two.

Why is the answer showing a dash?

Because the number being measured against is zero, and nothing has a percentage of zero. "30 is what per cent of 0" and "the change from 0 to 50" both have no finite answer, so the tool shows a dash rather than inventing one. Change the second number and the answer returns.

Why does 10% of 1.15 come out as 0.115 here and 0.11499999999999999 elsewhere?

Because most calculators, including every one built on a plain JavaScript number, work in binary floating point, which cannot represent 1.15 or 0.1 exactly. This tool does the arithmetic in decimal, so the answer is the one you would get on paper. The difference is tiny until it is multiplied by a few thousand rows.

Are the numbers I type sent anywhere?

No. The calculation runs in this browser tab and there is no server to send it to. The figures do appear in the address bar so a link can carry them to somebody else, and a fragment after the # is never transmitted in an HTTP request.

Sources

Method written and checked by Tessalor on Jul 30, 2026.