Number to Words Converter
Type a number to write it out in words, or switch to amount in words for cheques, invoices and contracts. Choose international or Indian numbering (lakh, crore).
Runs in your browser — the number is never sent anywhere.
Sample cheque preview
See how the amount looks on a cheque: words, figures and today’s date on a generic sample. It is drawn in your browser; nothing is uploaded.
Examples
| 21 | twenty-one |
| 101 | one hundred one |
| 101 (with “and”) | one hundred and one |
| 1,001 | one thousand one |
| 1,000,000 | one million |
| 1,234,567.89 | one million two hundred thirty-four thousand five hundred sixty-seven dollars and eighty-nine cents |
| $1,234.56 (cheque) | one thousand two hundred thirty-four dollars and 56/100 |
| 1,00,000 (Indian) | one lakh |
| 12,34,56,789 (Indian) | twelve crore thirty-four lakh fifty-six thousand seven hundred eighty-nine |
| ₹1,50,000.50 | one lakh fifty thousand rupees and fifty paise only |
How the amount in words is written
The whole units come first, then “and” and the cents: $21.21 is “twenty-one dollars and twenty-one cents”. US cheques often show cents as a fraction instead — “and 21/100” — which you can pick under Cents. In India, cheques and invoices usually end with “only”: “one lakh fifty thousand rupees only”. Cents and paise are rounded to two decimal places (0.005 and up rounds up).
International or Indian numbering
International numbering groups by thousands: thousand, million, billion (1 billion = 1,000,000,000). Indian numbering uses thousand, lakh (1,00,000) and crore (1,00,00,000), so 12,34,56,789 reads “twelve crore thirty-four lakh fifty-six thousand seven hundred eighty-nine”. Crores above 99 carry on in crores: 1,000,000,000 is “one hundred crore”.
“And”, hyphens and capitals
Compound numbers from 21 to 99 take a hyphen: twenty-one, ninety-nine. American usage leaves out “and” (one hundred one); British and Indian usage puts it before the last two digits (one hundred and one, one lakh and one). Pick the capital style your document needs; Title Case capitalises each word, including after hyphens.
Typing the number
Commas, spaces and a leading $ or ₹ are fine: 1,234,567.89, 12,34,567.89 and 1234567.89 all work. The period is the decimal point. In “Number in words” mode, decimals are read digit by digit after “point”: 3.14 is “three point one four”. The limit is 999,999,999,999.
Amount in words in Google Sheets
Google Sheets has no built-in function for amounts in words, but a short custom function does it. Open your sheet, choose Extensions → Apps Script, replace the code with the script below, save, and type =AMOUNTINWORDS(A2) in any cell.
The default is the Indian cheque format: 140000 becomes “Rupees One Lakh Forty Thousand Only”. For US style use =AMOUNTINWORDS(A2, "USD"): 1234.56 becomes “One Thousand Two Hundred Thirty-Four Dollars and Fifty-Six Cents”. Paise and cents are rounded to two decimals, and the function also accepts a range such as A2:A20.
Excel has no built-in function for English amounts in words either. This script runs only in Google Sheets; for an Excel file, convert single amounts with the tool above or open the file in Google Sheets.
/**
* Amount in words for Google Sheets (wordcount.com/number-to-words).
* =AMOUNTINWORDS(A2) Rupees One Lakh Forty Thousand Only
* =AMOUNTINWORDS(A2, "USD") One Thousand Two Hundred Thirty-Four Dollars and Fifty-Six Cents
* Works on a range too: =AMOUNTINWORDS(A2:A20)
* @param {number} amount The amount in figures (0 to 999,999,999,999.99).
* @param {string} style "INR" (default) or "USD".
* @return The amount in words.
* @customfunction
*/
function AMOUNTINWORDS(amount, style) {
if (amount && amount.map) {
return amount.map(function (row) {
return row.map(function (v) { return AMOUNTINWORDS(v, style); });
});
}
if (amount === "" || amount === null || amount === undefined) return "";
var s = String(amount).replace(/[\s,\u20b9$]|Rs\.?/g, "");
if (/e/i.test(s)) s = Number(s).toFixed(6);
if (!/^\d*\.?\d*$/.test(s) || !/\d/.test(s)) throw new Error("Not an amount: " + amount);
var p = s.split("."), whole = parseInt(p[0] || "0", 10), f = ((p[1] || "") + "000").slice(0, 3);
var cents = parseInt(f.slice(0, 2), 10) + (f.charAt(2) >= "5" ? 1 : 0);
if (cents === 100) { cents = 0; whole += 1; }
if (whole > 999999999999) throw new Error("Too large: the maximum is 999,999,999,999");
var U = ["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten",
"Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"];
var T = ["", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"];
function w100(n) { return n < 20 ? U[n] : T[Math.floor(n / 10)] + (n % 10 ? "-" + U[n % 10] : ""); }
function w1000(n) {
var h = Math.floor(n / 100), r = n % 100;
return (h ? U[h] + " Hundred" + (r ? " " : "") : "") + (r ? w100(r) : "");
}
function intl(n) {
var names = ["", " Thousand", " Million", " Billion"], out = [], i = 0;
if (n === 0) return "Zero";
while (n > 0) { if (n % 1000) out.unshift(w1000(n % 1000) + names[i]); n = Math.floor(n / 1000); i++; }
return out.join(" ");
}
function indian(n) {
if (n === 0) return "Zero";
var out = [], cr = Math.floor(n / 10000000), lk = Math.floor(n / 100000) % 100,
th = Math.floor(n / 1000) % 100, r = n % 1000;
if (cr) out.push((cr >= 1000 ? intl(cr) : w1000(cr)) + " Crore");
if (lk) out.push(w100(lk) + " Lakh");
if (th) out.push(w100(th) + " Thousand");
if (r) out.push(w1000(r));
return out.join(" ");
}
if (String(style || "INR").toUpperCase() === "USD") {
return intl(whole) + (whole === 1 ? " Dollar" : " Dollars") +
(cents ? " and " + w100(cents) + (cents === 1 ? " Cent" : " Cents") : "");
}
if (whole === 0 && cents) return w100(cents) + (cents === 1 ? " Paisa" : " Paise") + " Only";
return (whole === 1 ? "Rupee " : "Rupees ") + indian(whole) +
(cents ? " and " + w100(cents) + (cents === 1 ? " Paisa" : " Paise") : "") + " Only";
}
FAQ
How do I write an amount in words on a cheque?
Enter the amount, choose “Amount in words” and your currency, then copy. For a US cheque pick cents “as a fraction”: $1,234.56 becomes “one thousand two hundred thirty-four dollars and 56/100”.
How do I write 1,50,000 in words?
In Indian numbering it is “one lakh fifty thousand”. As an amount with “only”: “one lakh fifty thousand rupees only”. In international numbering the same number is “one hundred fifty thousand”.
Should I write “one hundred and one” or “one hundred one”?
Both are correct. American English usually omits “and”; British and Indian English include it. The “Use and” option switches between them.
Is the number sent to a server?
No. The conversion runs in a script on this page; nothing is sent or stored.
What is the largest number supported?
999,999,999,999 (nine hundred ninety-nine billion…), with up to six decimal places. Negative numbers aren’t supported.