Number to Words

Write a cheque and you put the amount down twice, once in figures and once in words, and where the two disagree it is the words that carry. That is the whole reason this format has rules rather than preferences.

Commas and spaces are ignored. Up to 10^15.
Used by the cheque format
Number to Words Converter — Write Any Amount Out in English, Including ChequesBuildFigure

Groups of three, which is why the commas are where they are

English names a new scale every three digits: thousand at 10^3, million at 10^6, billion at 10^9, trillion at 10^12, quadrillion at 10^15. Everything below the first comma has a name of its own, and everything above is that same 0-999 vocabulary repeated with a scale word attached. Split 1,234,567 at the commas and you read each group as if it stood alone — one, two hundred thirty-four, five hundred sixty-seven — then hang million and thousand on the first two. There is no more to the algorithm than that, and it is exactly what the converter does.

This is the short scale, where each new name is a thousand times the last. The long scale, still used across much of continental Europe, makes each new name a million times the last, so a billion there is 10^12 and 10^9 is a milliard. British usage moved to the short scale officially in 1974 and completely in practice since, so short scale is what this produces and what any English-language contract will be read against.

The "and", and why the default is off

British English inserts and between the hundreds and whatever follows: one hundred and one, two thousand and five. American English does not: one hundred one, two thousand five. Both are correct in their own register, and the checkbox switches between them.

The reason it is off by default is not a preference for American English. It is that in a written money amount, and conventionally marks the decimal point — the boundary between dollars and cents. One hundred and fifty dollars is unambiguous in speech and a problem in a contract, because it could be parsed as $100.50. Legal and financial drafting guides in both countries therefore recommend leaving and out of the whole part regardless of nationality, and reserving it for the cents. The cheque format below always uses it that way.

Cheques and contracts

The cheque amount line is written as words for the whole units and a fraction over 100 for the minor ones: One thousand two hundred thirty-four and 45/100. The word dollars is usually pre-printed at the end of the line, so it is often omitted from what you write. The fraction is not stylistic — writing 45/100 rather than forty-five cents fixes the digit count so nothing can be appended to it, and the leftover space on the line gets struck through or filled with asterisks for the same reason. That is what the fill-character variant is for.

Where the words and the figures disagree, the words generally win. In the US that is codified: UCC 3-114 says words control over figures in a negotiable instrument. Most other common-law jurisdictions reach the same result. Practically, banks in several countries now process cheques by reading the numeric field electronically and only escalate to a human when something is flagged, so a mismatch is likelier to produce a returned cheque than a quiet resolution either way. Contracts and invoices carry both forms side by side — USD 1,234.45 (One thousand two hundred thirty-four and 45/100) — precisely so a single mistyped digit cannot pass unnoticed.

Ordinals, decimals and the edges

Ordinals take -th except where the last two digits are 1, 2 or 3 outside the 11-13 range: 1st, 2nd, 3rd, then 4th through 20th, then 21st, 22nd, 23rd, 24th. The last two digits are what decide it, which is why 111th and 112th are -th while 121st and 122nd are not. In words only the final word changes, so 21 is twenty-first and 100 is one hundredth, and a tens word ending in -y becomes -ieth: twenty, twentieth.

Plain decimals are read digit by digit after the word point: 3.14 is three point one four, never three point fourteen. Zero after the point is read as zero here; oh and nought are both current in British speech but neither belongs in a written document. Negatives take minus rather than negative, which is the more common written form in both varieties.

The ceiling is one quadrillion, and the reason is arithmetic rather than vocabulary. JavaScript numbers stop representing every integer exactly above 2^53, roughly 9.007 quadrillion, so beyond that the value you typed and the value being converted are not reliably the same number. A converter that keeps producing confident output past that point is producing words for a number you did not enter, which on a document that someone signs is the worst possible failure — so it stops instead.

Questions people ask

Should I write "one hundred and one" or "one hundred one"?

Either is correct English — with "and" is standard British, without is standard American. For money, leave it out whichever side of the Atlantic you are on. In an amount, "and" is read as marking the decimal point, so "one hundred and fifty dollars" is genuinely ambiguous between $150 and $100.50. Drafting guides in both countries recommend reserving "and" for the boundary between the major and minor units, which is what the cheque format does automatically.

How do I write cents on a cheque?

As a fraction over 100 after the word "and": forty-five cents is "and 45/100". Write it that way rather than in words, because the fixed two digits and the slash make it very hard to alter — someone cannot turn 45/100 into 450/100 without it being obvious. Fill the rest of the line with a horizontal rule or asterisks so no words can be added after the amount. Zero cents is written "and 00/100", not left blank.

What happens if the words and the numbers on my cheque disagree?

In the United States, UCC 3-114 makes the words controlling, and most common-law jurisdictions reach the same conclusion. In practice it is messier than that rule suggests: high-volume cheque processing reads the numeric field first and flags mismatches for manual review, so what you are most likely to get is a returned cheque and a phone call rather than a clean payment at the written amount. Write it once, check both fields against each other before signing.

Why does it stop at one quadrillion?

Because past roughly 9 quadrillion, JavaScript cannot hold every whole number exactly — the standard double-precision format runs out of significant bits at 2^53. Beyond that limit the number being converted may differ from the number typed, silently and in the last few digits. Naming the scales is easy; guaranteeing the value is not, so it refuses rather than producing plausible words for a slightly wrong number.

Can it do a currency other than the ones listed?

Not directly, but the fix is a substitution. Generate the amount in dollars, then replace the currency word with yours — the words for the number itself do not change, and the x/100 fraction is right for any currency with a hundred minor units. Currencies without minor units, or with a different subdivision, need a different structure and the cheque format here will not be correct for them.

Related