Le web de Dominique Guebey – Bazar informatique
https://www.dg77.net/tekno/manuel/dgnumf.htm

   D o m i n i q u e   G u e b e y    J u n g l e      Bazar informatique

DGNUMF - traducteurs nombres-mots

12:56:08,74>bin\dgnumf 891210987654321
 HUIT CENT QUATRE-VINGT-ONZE MILLE DEUX CENT DIX MILLIARDS NEUF CENT 
 QUATRE-VINGT SEPT MILLIONS SIX CENT CINQUANTE QUATRE MILLE 
 TROIS CENT VINGT ET UN

Sommaire

Présentation

Cette page propose un module de traduction d’un nombre en une expression en français. Écrit en langage REXX, il est portable sur à peu près tous les types d’ordinateurs et systèmes d’exploitation.

Ce programme, conçu en 2002 comme simple démonstration, a été révisé en 2026. Il permet de traiter des nombres de 15 chiffres pour la partie entière, autant pour la partie décimale. Pour les nombres égaux ou supérieurs à 10 puissance 12 (1.000.000.000.000) il utilise l’expression « mille milliard(s) » et non pas « billion(s) », en raison de la confusion possible avec le billion au sens de l’anglais américain (10 puissance 9).

Ce programme est respectueux de l’orthographe française et des conventions typographiques. Il conserve le nombre des décimales (.50 donnera "VIRGULE (ou unité paramétrée) CINQUANTE", et non pas "VIRGULE CINQ"), règle obligatoire pour certaines applications comme l’édition de chèques. Des paramètres facultatifs offrent plusieurs options :

Pour plus d’informations et exemples, voir les commentaires dans le listing.

Téléchargement / Downloading

Suivre ce lien. Le fichier dgnumf.rex.txt doit être renommé en .rex.

Consignes d’installation/lancement sur IBM AS400 / iSeries : voir ci-dessous

Documentation de base

Commentaires du listing
DGNUMF - CONVERTISSEUR NOMBRES-MOTS EN LANGUE FRANÇAISE
Version 2.4.1 du 2026-10-21
Copyright 2002 2005 2026 Dominique Guebey
https://www.dg77.net/tekno/manuel/dgnumf.htm
COMMENTAIRES SUPPLEMENTAIRES : voir en fin de listing
MORE COMMENTS : see at the bottom
******************************************
Ce programme a pour fonction la conversion d'un nombre en
une proposition en francais. Voir des exemples dans les 
"commentaires" a la fin.
******************************************
CONDITIONS D'UTILISATION
Ce programme est offert sans garantie de fonctionnement.
Ce programme est librement utilisable, modifiable et 
diffusable, meme contre paiement, sous la condition que les 
memes termes seront applicables a la version ainsi distribuee.
******************************************                          
PARTICULARITES : language REXX, utilisation des fonctions
integrees POS, LENGTH, STRIP, SUBSTR et TRUNC.
La presente version s'applique a des nombres limite a 
15 chiffres pour la partie entiere et autant pour la partie 
decimale. Pour des longueurs superieures, le programme restitue 
les donnees fournies en entree.
******************************************
PARAMETRES EN ENTREE
1. "num" : nombre a traiter.
2. "casse" : par defaut, sortie en majuscules (s'il y a 
   ensuite d'autres parametres, mettre "*"). Exceptions :
   - Sortie en caracteres minuscules : "MIN", "min", "low" 
     ou "LOW".
   -Cas particulier : unites et symboles (paramètre 3)
     - QUI NE PRENNENT PAS LA MARQUE DU PLURIEL, 
     - CONSERVENT LA CASSE, que les nombres soient en
       majuscules ou minuscules. 
       Ex. : kg, km/h, USD, kWh, MWh.
       - Minuscules : "min0", "MIN0", "low0" ou "LOW0",
       - Majuscules : "maj0", "MAJ0", "upp0" ou "UPP0".
3. "unite" : unite ("EURO", "KILO", "BANANE"), par defaut
   le mot "VIRGULE" sera inséré s'il y a lieu entre les unités 
   et decimales. ATTENTION : si inutilisé mais présence d'un 
   des paramètres suivants, alors mettre "*".
4. "fem" : si l'unité (paramètre 3) est de genre féminin : 
   "f" ou "F". Facultatif si le paramètre suivant est 
   inutilisé. Sinon tout autre caractère.
5. Cas particulier de 70, 90 (eventuellement 80) :
   - "b" / "B" ("belgo-suisse") 70->"septante", 90->"nonante"
   - "r" / "R" comme b et : 80-> "huitante" (suisse romande)
   - "a" / "A" comme b et : 80-> "octante" (atteste en Acadie)

Démo / exemples

Exemples simples.
16:41:17,70>bin\dgnumf 19.5
 DIX NEUF VIRGULE CINQ
16:41:20,20>
16:43:38,19>bin\dgnumf -101101 * * f
MOINS CENT UN MILLE CENT UNE
16:43:38,22>
16:42:56,16>bin\dgnumf 19.50 * EURO
 DIX NEUF EUROS CINQUANTE
Nombre en minuscules, unité comportant majuscules et minuscule.
11:43:11,05>bin\dgnumf 670 MIN0 kWh
 six cent soixante dix kWh
Paramétrages divers.
16:45:36,19>bin\dgnumf 93 min
 quatre-vingt-treize
16:45:39,22>
16:46:42,11>bin\dgnumf 93 maj chacal
 QUATRE-VINGT-TREIZE CHACALS
16:46:43,21>
16:47:16,19>bin\dgnumf 93 * CHEVAL x B
 NONANTE-TROIS CHEVAUX
16:47:33,51>
16:47:28,54>bin\dgnumf 91 MIN BANANE f b
 nonante-et une bananes
16:47:56,77>
15:28:41,04>bin\dgnumf 2000001 min auto f
 deux millions une autos
15:28:41,64>
16:05:55,91>bin\dgnumf 1000000 * auto F
 UN MILLION D'AUTOS
16:06:15,42>
16:06:15,91>bin\dgnumf 2000000000 min haricot
 deux milliards de haricots
16:06:18,09>
16:46:03,97>bin\dgnumf 97031 MIN BANANE f
 quatre-vingt-dix-sept mille trente et une bananes
16:46:05,00>
18:20:41,72>bin\dgnumf 97031 maj cheval * b
 NONANTE-SEPT MILLE TRENTE ET UN CHEVAUX
18:20:42,13>
Nombre belgo-suisse très long avec décimales et unité de genre féminin.
11:36:30,85>bin\dgnumf 777222999444551.111222333444555 * SECONDE * b
 SEPT CENT SEPTANTE SEPT MILLE DEUX CENT VINGT DEUX MILLIARDS 
NEUF CENT NONANTE-NEUF MILLIONS QUATRE CENT QUARANTE QUATRE MILLE 
CINQ CENT CINQUANTE ET UNE SECONDES CENT ONZE MILLE DEUX CENT 
VINGT DEUX MILLIARDS TROIS CENT TRENTE TROIS MILLIONS 
QUATRE CENT QUARANTE QUATRE MILLE CINQ CENT CINQUANTE CINQ

Installation et lancement sur IBM AS400 / iSeries

Attention : en cas de modification du source sur PC : il ne doit y avoir aucun caractère de tabulation, mais uniquement des espaces. Noter que certains éditeurs (Jext, Notetab) ont une fonction de remplacement des tabulations par des espaces.

Sur l’AS400 création éventuelle du fichier source (sinon un fichier physique sera créé au lieu d’un membre source) : CRTSRCPF   FILE([nom bibliothèque]/QREXSRC)   [Entrée] Nota : La valeur RCDLEN=132 n’est plus nécessaire depuis la version 0.9.99 (la valeur par défaut (92) tronquait les lignes auparavant).

Sur le PC : envoi à l’AS400 par FTP : Sous DOS/"invite de commande" :

Sur l’AS400 : Sous PDM, changer le type du membre, de blanc en "REXX".

Lancement : Exemple ci-dessous, à l’aide d’un CL :

/* PARAMETRE 1 (ENTREE) UNIQUE ZONE CONTENANT LES PARAMETRES */
/*   PASSES AU MODULE REXX, SEPARES PAR UN BLANC :           */
/* - NOMBRE (OBLIGATOIRE)                                    */
/* - FEMININ : "F"                                           */
/*     SINON TOUT AUTRE NON BLANC SI PARAMETRES ENSUITE      */
/* - UNITE AU SINGULIER, "*" SI PARAMETRES ENSUITE           */
/* - CASSE : "MIN" "MIN0" "LOW" "LOW0" "MAJ" "MAJ0"          */
/*     "UPP" "UPP0" OU TOUT AUTRE SI PARAMETRES ENSUITE      */
/* - "BELGO/SUISSE" : "B" "R" "A" (FACULTATIF)               */
/* PARAMETRE 2 (PHRASE) BLANC EN ENTREE                      */
PGM PARM(&ENTREE &PHRASE)

DCL &ENTREE TYPE(*CHAR) LEN(128)
DCL &PHRASE TYPE(*CHAR) LEN(128)
DCL &BLANC  TYPE(*CHAR) LEN(128)
CHGDTAARA DTAARA(*LDA (201 128)) VALUE(&BLANC)

STRREXPRC  DGNUMF400 SRCFILE(MGNEW/QREXSRC) PARM(&ENTREE)
MONMSG CPF0000
RTVDTAARA  DTAARA(*LDA (201 128)) RTNVAR(&PHRASE)

/*                POUR DEMONSTRATION                         */
DSPDTAARA  DTAARA(*LDA)
ENDPGM