Convert numbers to words and words back to numbers — now with support for currency. Simple, accurate, and type-safe. Works seamlessly with JavaScript, TypeScript, Node.js, React, Next.js, and even from the CLI.
- 🔁 Bi-directional conversion
42 → "forty-two"
-
"seven point five"
→7.5
- ✅ Supports integers, negatives, and decimal numbers
- 💰 Currency support (e.g.,
10.25
↔️ "ten dollars and twenty-five cents"
) - 🌍 Handles numbers up to trillions
- 💻 Works with Node.js, browser environments, and CLI
- 📦 Built with TypeScript & supports ESM and CommonJS
- 🔧 Lightweight and dependency-free
npm install word-number-word
# or
yarn add word-number-word
import {
numberToWord,
wordToNumber,
currencyToWord,
wordToCurrency,
} from "word-number-word";
// Basic usage
console.log(numberToWord(42)); // "forty-two"
console.log(wordToNumber("minus three")); // -3
// Currency support
console.log(currencyToWord(10.25, "usd")); // "ten dollars and twenty-five cents"
console.log(wordToCurrency("ten dollars and five cents", "usd")); // 10.05
npx word-number-word 123
# Output: "one hundred twenty-three"
npx word-number-word "two thousand and five"
# Output: 2005
Function | Description | Example |
---|---|---|
numberToWord(num: number) |
Converts a number to its word form |
numberToWord(123) → "one hundred twenty-three"
|
wordToNumber(str: string) |
Converts a word string into a number |
wordToNumber("five") → 5
|
currencyToWord(num: number, currency) |
Converts currency number to words (with major/minor units) |
currencyToWord(4.5, "usd") → "four dollars and fifty cents"
|
wordToCurrency(str, currency) |
Converts word form currency to number |
wordToCurrency("ten dollars and five cents", "usd") → 10.05
|
Note: Currency codes supported
"usd"
,"bdt"
,"eur"
,"gbp"
. Handles both"forty-two"
and"forty two"
formats.
- ✅ Node.js (v14+)
- ✅ Modern Browsers
- ✅ TypeScript & JavaScript
- ✅ Frameworks: React, Next.js, Express, Vite, etc.
- ✅ CLI (via
npx
or install globally)
Input | Output |
---|---|
123 |
"one hundred twenty-three" |
-99.5 |
"minus ninety-nine point five" |
"fourteen" |
14 |
"minus two" |
-2 |
"three point one four" |
3.14 |
currencyToWord(4.5, "usd") |
"four dollars and fifty cents" |
wordToCurrency("ten dollars and five cents", "usd") |
10.05 |
Install globally for quick conversions in your terminal:
npm install -g word-number-word
Then use it anywhere:
word-number-word 456
# → "four hundred fifty-six"
MIT License © Hridoy Saha
Contributions, suggestions, and improvements are welcome!
Feel free to open an issue or submit a pull request.