Amount to Words Converter — Rupees (Lakh & Crore) and Other Currencies
Amount in words
—
Lakh and crore in words: Indian vs International numbering
| Indian figures | International figures | Indian words (converter output) | International words (converter output) |
|---|---|---|---|
| 1,000 | 1,000 | One Thousand | One Thousand |
| 10,000 | 10,000 | Ten Thousand | Ten Thousand |
| 1,00,000 | 100,000 | One Lakh | One Hundred Thousand |
| 10,00,000 | 1,000,000 | Ten Lakh | One Million |
| 1,00,00,000 | 10,000,000 | One Crore | Ten Million |
| 10,00,00,000 | 100,000,000 | Ten Crore | One Hundred Million |
| 1,00,00,00,000 | 1,000,000,000 | One Hundred Crore | One Billion |
Self-check — fixed conversions this page produces
| Amount | Currency | Numbering | “Only” | Output |
|---|---|---|---|---|
| 0.00 | US Dollar | International | off | Zero Dollars |
| 105.00 | US Dollar | International | off | One Hundred Five Dollars |
| 1000000.00 | US Dollar | International | off | One Million Dollars |
| 1000000.00 | Indian Rupee | Indian | on | Ten Lakh Rupees Only |
About this page
International groups digits in threes (1,000,000 = One Million). Indian groups the last three digits and then in pairs (10,00,000 = Ten Lakh), which is what Indian-format invoices and cheques expect.
The word columns are this converter's output (numbering only, no currency word). NCERT's Grade 7 textbook gives the Indian names — “1,00,000 is read as "One Lakh"”; “The number will be 100 lakhs, which is also called a crore. 1 crore is written as 1,00,00,000” — and says that in the Indian system “commas are placed to group the digits in a 3-2-2-2... pattern from right to left”. Its own table words some rows differently, for example “Ten lakhs” and “One arab or One hundred crores”. Source: NCERT, Ganita Prakash Grade 7, Chapter 1 “Large Numbers Around Us” (Reprint 2026-27). The Indian commas come from Intl.NumberFormat('en-IN'), which follows the Unicode CLDR, en-IN number formats pattern #,##,##0.### (both checked 25 September 2026).
Type any of these amounts into the form with the settings shown and you get the output in the last column. They are here so you can confirm the four behaviours that most often go wrong: zero, a hundreds group with no tens, and the same number in each numbering system.
Note the third and fourth rows: the same number, 1,000,000, is One Million under International grouping and Ten Lakh under Indian grouping. Note the first row too — a zero subunit is dropped rather than written as “and Zero Cents”.
Amount in words examples
How the math works
The amount is split into a whole part and a subunit, each converted separately, then joined:
major = ⌊amount⌋
minor = first two decimal digits, rounded half-up using the third digit → 0…99
words = numberToWords(major) + " " + majorUnit
[ + " and " + numberToWords(minor) + " " + minorUnit ] only when minor is not 0
[ + " Only" ] only when the toggle is on International grouping — split major into 3-digit groups from the right and name them:
major = G3 G2 G1 G0
words = [G3] Billion [G2] Million [G1] Thousand [G0] groups equal to 0 are dropped Indian grouping — the last three digits, then pairs:
crore = ⌊major ÷ 10,000,000⌋
lakh = ⌊(major mod 10,000,000) ÷ 100,000⌋
thousand = ⌊(major mod 100,000) ÷ 1,000⌋
rest = major mod 1,000
words = [crore] Crore [lakh] Lakh [thousand] Thousand [rest] parts equal to 0 are dropped The crore part is run through the same Indian rule again, so 99,999 crore reads “Ninety-Nine Thousand Nine Hundred Ninety-Nine Crore”.
Every group under 1000 uses one rule, which is where the hyphen comes from:
hundreds digit → ONES[h] + " Hundred"
remainder 1–19 → ONES[r] e.g. 15 → Fifteen
remainder ≥ 20 → TENS[t] + "-" + ONES[o] e.g. 21 → Twenty-One, 56 → Fifty-Six
(the hyphen and ONES are dropped when the unit digit is 0: 40 → Forty) Worked example — 1234.56, US Dollar, International, “Only” off
major = 1234 → groups: G1 = 1, G0 = 234
G1 = 1 → "One" + " Thousand"
G0 = 234 → "Two Hundred" + "Thirty-Four"
numberToWords(1234) = "One Thousand Two Hundred Thirty-Four"
minor = 56 → "Fifty-Six", minorUnit = "Cents"
result = One Thousand Two Hundred Thirty-Four Dollars and Fifty-Six Cents Worked example — 123456.00, Indian Rupee, Indian numbering, “Only” on
major = 123456
crore = ⌊123,456 ÷ 10,000,000⌋ = 0 → dropped
lakh = ⌊123,456 ÷ 100,000⌋ = 1 → "One Lakh"
thousand = ⌊23,456 ÷ 1,000⌋ = 23 → "Twenty-Three Thousand"
rest = 123,456 mod 1,000 = 456 → "Four Hundred Fifty-Six"
minor = 0 → the subunit clause is dropped
result = One Lakh Twenty-Three Thousand Four Hundred Fifty-Six Rupees Only Scope and limits
- Output is English, in Title Case, using the US convention of no “and” inside the number itself.
- Range is 0 to 999,999,999,999.99. Amounts above that, and negative amounts, are rejected with a message rather than converted.
- Subunits are rounded to 2 decimal places (half-up). Convert the amount you are actually invoicing, not a pre-rounded one, so the words and the figures agree.
- The wording your bank, client or jurisdiction accepts — the currency name, whether “Only” is required, whether a zero subunit must be spelled out — is set by them, not by this page. This is a text-formatting tool, not legal, banking or accounting advice. Check the required format before relying on it.
- Nothing is uploaded: the amount is converted in your browser. Usage analytics record only which currency set and numbering system were used and whether “Only” was switched on — never the amount.