skillfed

num2words

Modules to convert numbers to words. Easily extensible.

num2words v0.5.14 9.5M downloads/30d#1,531 on PyPI962
Copyleft license LGPL AGING released

What it is and what it does

num2words is a library that converts numeric values into their written word equivalents across multiple languages. It handles cardinal numbers (42 → 'forty-two'), ordinal forms (42 → 'forty-second'), year formats, and currency representations. The library supports language variants including English, Spanish, French, German, and many others, with locale-specific fallback behavior when exact regional variants are unavailable.

The package is designed for internationalization and localization tasks where numeric output needs to be human-readable in multiple languages. It exposes a single primary function with optional parameters to specify the conversion type and target language. The library includes both a Python API and a command-line interface, making it suitable for integration into applications or standalone text processing workflows.

Use it for:

  • Generate human-readable invoice or receipt text in customer-preferred languages for e-commerce or billing systems.
  • Convert numeric data to words for text-to-speech or accessibility features in multilingual applications.
  • Format currency amounts as spelled-out text for legal documents, checks, or formal correspondence.
  • Localize numeric output in reports, forms, or user-facing content for international audiences.
  • Create ordinal representations for ranking, positioning, or date formatting in multilingual contexts.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Converts numbers to their word representations in multiple languages, supporting cardinal numbers, ordinals, years, and currency formats.

Yes. The package is stable (Production/Stable status), widely used (9461923 monthly downloads, top_5000 tier), has no known vulnerabilities, and imposes minimal install friction. The copyleft license is a consideration for proprietary applications but not a barrier for most use cases. The 605-day gap since the last release suggests slower maintenance, but the active repository and recent commits indicate ongoing support. Install it if you need multilingual number-to-words conversion.

Install

num2words on PyPI

pip

pip install num2words

uv

uv add num2words

poetry

poetry add num2words

Installing num2words

Before you install

Low install friction with a single lightweight runtime dependency (docopt). Last release was 605 days ago; the repository remains active with recent commits (2025-05-30) and 962 stars, though maintenance pace appears to have slowed.

License in practice

Licensed under LGPL (copyleft). Any derivative work or modification must be distributed under compatible terms; proprietary closed-source applications using this library must comply with copyleft obligations or obtain alternative licensing.

Quickstart

pip install num2words

from num2words import num2words
print(num2words(42))
print(num2words(42, to='ordinal'))
print(num2words(42, lang='fr'))

Verify before relying

  • Whether ordinal number generation is reliable across all supported languages (description notes this feature is 'a bit buggy for some languages').
  • Current test coverage and robustness of less commonly used language implementations.
  • Performance characteristics when handling very large numbers or bulk conversions.
  • Total number of supported language variants and regional locales.

Package facts

License LGPL (copyleft)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies 1 — docopt
Maintenance aging — 605 days since the last release
Last repo commit
First released
Downloads 9,461,923/month — #1,531 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: num2words-0.5.14-py3-none-any.whl

Keywords: number, word, numbers, words, convert, conversion, i18n, localisation, localization, internationalisation, internationalization

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: InternationalizationTopic :: Software Development :: Libraries :: Python ModulesTopic :: Software Development :: LocalizationTopic :: Text Processing :: Linguistic

Tags

number to words conversionconvert numbers to textmultilingual number formattingordinal number generationcurrency word conversioni18n number localizationnumeric text representation
i18n-localizationtext-generationmultilingual

More Python Modules packages