This tool converts a cardinal number (1, 2, 3) into its ordinal form (1st, 2nd, 3rd) by adding the correct English suffix. It is handy for dates, rankings, leaderboards, and any prose where positions are written out.
How it works
English ordinal suffixes follow a simple rule based on the final digits:
ends in 1 → st (1st, 21st, 101st)
ends in 2 → nd (2nd, 32nd)
ends in 3 → rd (3rd, 43rd)
otherwise → th (4th, 5th, 100th)
The one exception is the teens: any number whose last two digits are 11, 12, or
13 takes th (11th, 12th, 13th, 111th, 212th, 513th). The tool checks the last
two digits for this exception first, then falls back to the last-digit rule.
The teen exception — why it exists
The rule for 11th, 12th, and 13th can seem inconsistent at first. If 1 takes “st” and 3 takes “rd”, why does 13 take “th”? The answer is pronunciation: eleven, twelve, and thirteen are words in their own right, not compounds of “ten and one.” Their spoken forms end in “-th” (eleventh, twelfth, thirteenth), and English spelling follows pronunciation for ordinals. The same logic applies to 111, 211, 312 — any number where the last two digits are 11, 12, or 13 inherits the “-th” ending:
| Number | Last two digits | Ordinal |
|---|---|---|
| 11 | 11 | 11th (not 11st) |
| 21 | 21 → last digit 1 | 21st |
| 111 | 11 | 111th (not 111st) |
| 121 | 21 → last digit 1 | 121st |
| 312 | 12 | 312th (not 312nd) |
Where you actually need this
Dates in prose: “She finished on the 23rd of April” versus “the 11th of November” (never “11st”). Getting the suffix right in auto-generated text is surprisingly easy to get wrong if you only check the last digit.
Leaderboard positions and rankings: “Finished in 102nd place” or “ranked 1,013th globally.” Automated ranking systems that generate position text need the full teen-exception logic, not just a one-digit lookup.
Competition brackets and sports: Round numbers like the 32nd or 64th position in a tournament, or the “3rd place play-off” — and the awkward 13th seed that never becomes the “13rd seed.”
API responses and UI labels: Any time you generate text labels dynamically from numbers — product listing positions, comment timestamps (“written 1st, 2nd, … 11th day of the month”), pagination — you need consistent ordinal suffixes.
Large numbers and negative numbers
For very large numbers the logic does not change — only the last two digits matter. For example, 1,000,001 ends in 01 (last two digits: not a teen), so it becomes 1,000,001st. And 1,000,013 ends in 13, so it becomes 1,000,013th.
Negative ordinals are rare but grammatically valid — a golf score of -4 (four under par) would never be written as “-4th”, but in contexts like “ranked -1st below average” the sign carries through and the suffix is taken from the absolute value. The tool follows this convention.