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 :
- Application du féminin (“…et une”)
- Support de la notion d’unité (exemple : “EURO”), utilisé par ailleurs en place du terme “virgule” s’il y a des décimales.
- Sortie du résultat au choix en caractères minuscules ou majuscules.
- Application de la terminologie belgo-suisse (nonante, septante).
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
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
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
11:43:11,05>bin\dgnumf 670 MIN0 kWh six cent soixante dix kWh
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>
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" :
- a- Se positionner dans le répertoire où se trouve le fichier à tranférer : cd [chemin] [Entrée]
- b- puis :
- ftp [nom de machine] [Entrée]
- ou : ftp [adresse IP] [Entrée]
- ou :
- ftp [Entrée]
- open [nom de machine ou adresse IP] [Entrée]
- c- Entrer un id utilisateur AS400 puis le mot de passe quand il est demandé,
- d-transfert PC-AS400 :
- Présupposé : on a créé (CRTSRCPF) un fichier source nommé (par ex.) QREXSRC.
- put dgnumf400.rex /qsys.lib/[nom biblio].lib/qrexsrc.file/dgnumf400.mbr [Entrée]
- e-sortie de ftp :
- quit [Entrée]
- exit [Entrée]
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