Fonction renvoyant un entier sous forme de texte en toutes lettres

Présentation
La méthode proposée transforme un nombre en lettres. C'est à dire transformer 123 en "cent vingt trois".

AnsiString __fastcall nombreEnLettres(int n, bool france = true);

n est le nombre à transformer en lettres
France détermine le langage à utiliser. Si france est à true, 70 sera écrit "soixante dix". Si france est à false 70 sera écrit "septante". Par défaut france vaut true s'il n'est pas précisé.

Exemple :

ShowMessage(nombreEnLettres(5384)); // affiche "cinq mille trois cent quatre-vingt quatre"
ShowMessage(nombreEnLettres(5384, false)); // affiche "cinq mille trois cent octante quatre"

Cette fonction tient compte des cas particuliers du Français :
31 : trente et un
80 : quatre-vingts
81 : quatre-vingt un ( sans 's' et sans 'et' )
200 : deux cents
202 : deux cent deux ( sans 's' )
Détails
Catégories : Maths et Algorithmes
Avatar de Ricky81
Expert éminent sénior
Voir tous les téléchargements de l'auteur
Licence : Autre
Date de mise en ligne : 14 novembre 2010




Avatar de salimatchou salimatchou - Nouveau Candidat au Club https://www.developpez.com
le 21/01/2013 à 15:12
merci pour le code, seulement il ya un petit problème concernant les chiffres 70,71,72... qui affiche quatre vint qinze .
j'ai juste au lieu d'incrémenter d++ je l'ai décrémenter d-- et maintenant ça marche a merveille.
merci pour votre source ca ma vraiment aider
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Contacter le responsable de la rubrique C++