Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Current Version Documentation License: Apache-2.0/MIT

This crate transforms a number into its French representation.

Using this crate

In your Cargo.toml, add:

french-numbers = "1.2.0"

You can then use the french_number function from the french_numbers crate to format any integer into the French representation:

use french_numbers::french_number;

assert_eq!(french_number(&71), "soixante-et-onze");
assert_eq!(french_number(&1001), "mille-un");
assert_eq!(french_number(&-200001), "moins deux-cent-mille-un");
assert_eq!(french_number(&-200000001), "moins deux-cents-millions-un");
assert_eq!(french_number(&-204000001), "moins deux-cent-quatre-millions-un");

You can also request the use of the feminine form, or prefer the previous way of writing numbers predating the 1990 orthographic reform:

use french_numbers::*;

assert_eq!(french_number_options(&37251061, &POST_REFORM_MASCULINE),
assert_eq!(french_number_options(&37251061, &POST_REFORM_FEMININE),
assert_eq!(french_number_options(&37251061, &PRE_REFORM_FEMININE),
           "trente-sept millions deux cent cinquante et un mille soixante et une");
assert_eq!(french_number_options(&37251061, &PRE_REFORM_MASCULINE),
           "trente-sept millions deux cent cinquante et un mille soixante et un")

An example program can dump particular numbers, with various options combinations:

% cargo run --bin french-numbers --features cli -- --help
Represent numbers in French language

Usage: french-numbers [OPTIONS] <LOW> [HIGH]

          Number (or low bound) to use

          If no high bound is supplied, this will be the only number displayed.

          Optional high bound

  -f, --feminine
          Use the feminine declination

  -p, --prefix
          Prefix output with the numerical representation

  -r, --no-reform
          Use the pre-1990 orthographic reform writing

          By default, all numbers are separated by dashes. Pre-1990, only numbers smaller than 100 were separated by dashes, others words were separated by spaces.

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version