Loading…
Spells numbers as English words with currency and ordinal options. Use for cheques, invoices or legal text; differs from text-to-unicode by words vs code points. Returns word form and copy-ready text. 100% client-side.
Number to Words is loading — interactive editor will appear here. Use examples below to try instantly once loaded.
Press ? for keyboard shortcuts
Converts numeric values to their word representation using Intl.NumberFormat and Indian numbering systems (lakh/crore). Supports currency mode for 5 major currencies (USD, EUR, GBP, INR, JPY) plus custom currencies, ordinal numbers, Roman numerals, scientific notation display, BigInt for large numbers, and a numeric breakdown showing place values.
Financial applications, legal documents, and educational tools often need numbers expressed as words. Handles the complexity of different numbering systems (Western vs Indian), currency formatting, and large number representation that developers shouldn't implement from scratch.
This tool is part of the DevStackIO platform — a collection of free online developer tools from DevStackIO. Browse more free developer resources on DevStackIO.
Financial software developers, accounting application engineers, educational content creators, invoice/check generation systems developers, and localization engineers.
Enter a numeric value in the input field (supports integers, decimals, and negative numbers)
Select the numbering system: Western (thousands/millions) or Indian (lakhs/crores) for appropriate word output
Enable Currency mode and select a currency (USD, EUR, GBP, INR, JPY) or define a custom currency symbol/name
Toggle Ordinal mode to convert numbers to ordinal words (first, second, third) instead of cardinal
Enable Roman numerals for conversion to Roman numeral format (I, V, X, L, C, D, M) up to 3999
Use scientific notation toggle to see the number in exponential format; the breakdown panel shows place values
Input: 1234567, Western system -> Output: "One Million Two Hundred Thirty-Four Thousand Five Hundred Sixty-Seven"Input: 1234567, Indian system, INR currency -> Output: "Twelve Lakh Thirty-Four Thousand Five Hundred Sixty-Seven Rupees" or with currency: "₹ Twelve Lakh Thirty-Four Thousand Five Hundred Sixty-Seven Only"What is the maximum number supported?
BigInt support handles numbers up to 10^308 and beyond; practical limits depend on the number of words generated.
How are decimals handled in currency mode?
Decimals are shown as fractional currency units (e.g., "Forty-Five Cents" for USD, "Seventy-Five Paise" for INR).
Does it support all Indian numbering units?
Yes, including lakh (10^5), crore (10^7), arab (10^9), kharab (10^11), and higher.
Can it convert negative numbers?
Yes, negative numbers are prefixed with "Negative" in the word output.
Authoritative specifications, standards, and in-depth reading for Number to Words.
1,234,567.89 (89 decimal places)One Million Two Hundred Thirty-four Thousand Five Hundred Sixty-sevenTwelve Lakh Thirty-four Thousand Five Hundred Sixty-sevenOne Million Two Hundred Thirty-four Thousand Five Hundred Sixty-seventh1234567thEight NineOne Million Two Hundred Thirty-four Thousand Five Hundred Sixty-seven Dollars and Eighty-nine Cents1.234568e+61234567
Integer Part
89
Decimal Part
7
Digit Count
No
Is Negative
Large Number Breakdown
Generate TypeScript interfaces from JSON with optional readonly and export. Use for TS types; for Go use json-to-go, for generic code use json-to-code. Input: JSON ≤10MB. Returns .ts interfaces or JSON error. 100% client-side.
Generate Go structs with json tags from JSON. Use for Go only; for TypeScript use json-to-typescript. Input: JSON ≤10MB. Returns Go code or JSON error. 100% client-side.
Extract HTML tables to JSON arrays for scraping. Use for <table> input only; for CSV to JSON use csv-to-json. Input: HTML with tables ≤10MB. Returns JSON array or NO_TABLE_FOUND error. 100% client-side.
Generate code types from JSON. Use for boilerplate; for TS only use json-to-typescript, for Go use json-to-go. Input: JSON ≤10MB. Returns code. 100% client-side, files never leave browser.
Shows Unicode code points, names and UTF-8 bytes for any text. Use when debugging encoding issues; differs from nato-alphabet by code points vs phonetic words. Returns per-character table with escapes. 100% client-side.
Spells text as NATO phonetic words (Alpha, Bravo, Charlie). Use when dictating over calls; differs from text-to-unicode by spoken words vs code points. Returns phonetic transcription. 100% client-side.
Convert Unix timestamps to readable dates and back. Supports timezones and multiple formats.
Convert text between camelCase, PascalCase, snake_case, kebab-case and UPPER. Use for code naming; for URL slugs use slug-generator. Input: text ≤10MB. Returns converted cases. 100% client-side.