Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ENTIER EN LETTRES


Information sur la source

Catégorie :Divers Classé sous : convertir, chiffre, lettre, entier, convertion Niveau : Débutant Date de création : 20/06/2005 Date de mise à jour : 28/06/2005 10:23:44 Vu : 3 891

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

Description

Voici un petit code qui transforme un entier en lettre (ex: 2000 ==> deux mille).
 

Source

  • /**Méthopde permettant de convertir l'entier sous forme de lettres
  • * @param intToString valeur entiére qu'on veut sous forme de chaine
  • * @return Nombre sous forme de lettres*/
  • public static String convertIntToString(int intToString){
  • int valeur = intToString;
  • String result = "";
  • if(valeur < 0){
  • result = "-";
  • valeur = -1 * valeur; //On le met en positif
  • }
  • //Nous allons commencer par convertir les chiffres supérieure à 1 000 000 000
  • if(valeur > 1000000000){
  • int valeurSupMilliard = (int)valeur / 1000000000;
  • result = result + " " + convertIntToString(valeurSupMilliard) + " milliard";
  • valeur = valeur - (valeurSupMilliard * 1000000000);
  • }
  • //Nous allons convertir les chifres entre 1 000 000 et 999 999 999
  • if(valeur > 1000000){
  • int valeurMillion = (int)valeur / 1000000;
  • result = result + " " + convertIntToString(valeurMillion) + " million";
  • valeur = valeur - (valeurMillion * 1000000);
  • }
  • //Nous allons convertir les chiffres entre 1000 et 999 999
  • if(valeur > 1000){
  • int valeurMille = (int)valeur / 1000;
  • if(valeurMille > 1){
  • result = result + " " + convertIntToString(valeurMille) + " mille";
  • }
  • else{
  • result = result + " mille";
  • }
  • valeur = valeur - (valeurMille * 1000);
  • }
  • //Nous allons convertir les chiffres entre 100 et 999
  • if(valeur > 100){
  • int valeurCent = (int)valeur / 100;
  • if(valeurCent > 1){
  • result = result + " " + convertIntToString(valeurCent) + " cent";
  • }
  • else{
  • result = result + " cent";
  • }
  • valeur = valeur - (valeurCent * 100);
  • }
  • //Nous allons convertir les chiffres entre 0 et 99
  • switch(valeur){
  • case 0 :
  • if(result == "" || result == "-"){
  • result = "zéro";
  • }
  • break;
  • case 1 :
  • result = result + " un";
  • break;
  • case 2 :
  • result = result + " deux";
  • break;
  • case 3 :
  • result = result + " trois";
  • break;
  • case 4 :
  • result = result + " quatre";
  • break;
  • case 5 :
  • result = result + " cinq";
  • break;
  • case 6 :
  • result = result + " six";
  • break;
  • case 7 :
  • result = result + " sept";
  • break;
  • case 8 :
  • result = result + " huit";
  • break;
  • case 9 :
  • result = result + " neuf";
  • break;
  • case 10 :
  • result = result + " dix";
  • break;
  • case 11 :
  • result = result + " onze";
  • break;
  • case 12 :
  • result = result + " douze";
  • break;
  • case 13 :
  • result = result + " treize";
  • break;
  • case 14 :
  • result = result + " quatorze";
  • break;
  • case 15 :
  • result = result + " quinze";
  • break;
  • case 16 :
  • result = result + " seize";
  • break;
  • case 20 :
  • result = result + " vingt";
  • break;
  • case 30 :
  • result = result + " trente";
  • break;
  • case 40 :
  • result = result + " quarante";
  • break;
  • case 50 :
  • result = result + " cinquante";
  • break;
  • case 60 :
  • result = result + " soixante";
  • break;
  • case 70 :
  • result = result + " soixante-dix";
  • break;
  • case 80 :
  • result = result + " quatre-vingts";
  • break;
  • case 81 :
  • result = result + " quatre-vingts un";
  • break;
  • case 90 :
  • result = result + " quatre-vingts-dix";
  • break;
  • case 91 :
  • result = result + " quatre-vingts onze";
  • break;
  • default :
  • int valeurDizaine = (valeur / 10) * 10;
  • int valeurUnite = valeur % 10;
  • //Les valeurs entre 16 et 20, 70 et 80, et entre 90 et 100 sont des cas
  • //particuliers, nous devons faire un triatment particulier
  • if((valeur > 16 && valeur < 20) || (valeur > 70 && valeur < 80) || (valeur > 90 && valeur < 100)){
  • valeurDizaine -= 10;
  • valeurUnite += 10;
  • }
  • if(valeurDizaine == 0){
  • result = result + " " + convertIntToString(valeurUnite);
  • }
  • else if(valeurUnite == 0){
  • result = result + " " + convertIntToString(valeurDizaine);
  • }
  • else if(valeurUnite == 1){
  • result = result + " " + convertIntToString(valeurDizaine)
  • + " et " + convertIntToString(valeurUnite);
  • }
  • else{
  • result = result + " " + convertIntToString(valeurDizaine)
  • + "-" + convertIntToString(valeurUnite);
  • }
  • }
  • return result.trim();
  • }
  • /**Méthode permettant de convertir le réel sous forme de lettre
  • * @param realToString valeur réelle qu'on veut sous forme de chaine
  • * @return Nombre sous forme de lettres*/
  • public static String convertRealToString(double intToString){
  • int valeurApresVirgule = (int)(intToString - (int)intToString);
  • int valeurAvantVirgule = (int)(intToString - valeurApresVirgule);
  • String result = "";
  • if(valeurApresVirgule == 0){
  • result = convertIntToString(valeurAvantVirgule);
  • }
  • else{
  • result = convertIntToString(valeurAvantVirgule) + ","
  • + convertIntToString(valeurApresVirgule);
  • }
  • return result ;
  • }
    /**Méthopde permettant de convertir l'entier sous forme de lettres
    * @param intToString valeur entiére qu'on veut sous forme de chaine
    * @return Nombre sous forme de lettres*/
   public static String convertIntToString(int intToString){
   	 int valeur = intToString;
   	 String result = "";
      	    	 
   	 if(valeur < 0){
   	 	result = "-";
   	 	valeur = -1 * valeur; //On le met en positif
   	 }
   	 
   	 //Nous allons commencer par convertir les chiffres supérieure à 1 000 000 000
   	 if(valeur > 1000000000){
   	 	int valeurSupMilliard = (int)valeur / 1000000000;
   	 	result = result + " " + convertIntToString(valeurSupMilliard) + " milliard";
   	 	valeur = valeur - (valeurSupMilliard * 1000000000);
   	 }
   	 
   	 //Nous allons convertir les chifres entre 1 000 000 et 999 999 999  
   	 if(valeur > 1000000){
   	 	int valeurMillion = (int)valeur / 1000000;
   	 	result = result + " " + convertIntToString(valeurMillion) + " million";
   	 	valeur = valeur - (valeurMillion * 1000000);
   	 }
   	 
   	 //Nous allons convertir les chiffres entre 1000 et 999 999
   	 if(valeur > 1000){
   	 	int valeurMille = (int)valeur / 1000;

   	 	if(valeurMille > 1){
   	 		result = result + " " + convertIntToString(valeurMille) + " mille";
   	 	}
   	 	else{
   	 		result = result + " mille";
   	 	}
   	 	
   	 	valeur = valeur - (valeurMille * 1000);
   	 }
   	
   	 //Nous allons convertir les chiffres entre 100 et 999	
   	 if(valeur > 100){
   	 	int valeurCent = (int)valeur / 100;

   	 	if(valeurCent > 1){
   	 		result = result + " " + convertIntToString(valeurCent) + " cent";
   	 	}
   	 	else{
   	 		result = result + " cent";
   	 	}
   	 	
   	 	valeur = valeur - (valeurCent * 100);
   	 }
   	 
   	 //Nous allons convertir les chiffres entre 0 et 99
   	 switch(valeur){
   	 	case 0 : 
   	 		if(result == "" || result == "-"){
   	 			result = "zéro";
   	 		}
   	 		break;
   	 	case 1 : 
   	 		result = result + " un";
   	 		break;
   	 	case 2 : 
   	 		result = result + " deux";
   	 		break;
   	 	case 3 : 
   	 		result = result + " trois";
   	 		break;
   	 	case 4 : 
   	 		result = result + " quatre";
   	 		break;
   		case 5 : 
   			result = result + " cinq";
   			break;
   		case 6 : 
   			result = result + " six";
   			break;
   		case 7 : 
   			result = result + " sept";
   			break;
   		case 8 : 
   			result = result + " huit";
   			break;
   		case 9 : 
   			result = result + " neuf";
   			break;
   		case 10 : 
   			result = result + " dix";
   			break;
   		case 11 : 
   			result = result + " onze";
   			break;
   		case 12 : 
   			result = result + " douze";
   			break;
   		case 13 : 
   			result = result + " treize";
   			break;
   		case 14 : 
   			result = result + " quatorze";
   			break;
   		case 15 : 
   			result = result + " quinze";
   			break;
   		case 16 : 
   			result = result + " seize";
   			break;   		
   		case 20 : 
   			result = result + " vingt";
   			break;
   		case 30 : 
   			result = result + " trente";
   			break;
   		case 40 : 
   			result = result + " quarante";
   			break;
   		case 50 : 
   			result = result + " cinquante";
   			break;
   		case 60 : 
   			result = result + " soixante";
   			break;
   		case 70 : 
   			result = result + " soixante-dix";
   			break;
   		case 80 : 
   			result = result + " quatre-vingts";
   			break;
   		case 81 : 
   			result = result + " quatre-vingts un";
   			break;
   		case 90 : 
   			result = result + " quatre-vingts-dix";
   			break;
   		case 91 : 
   			result = result + " quatre-vingts onze";
   			break;
   		default :
   			int valeurDizaine = (valeur / 10) * 10;
   			int valeurUnite = valeur % 10;
   			
   			//Les valeurs entre 16 et 20, 70 et 80, et entre 90 et 100 sont des cas
   			//particuliers, nous devons faire un triatment particulier
   			if((valeur > 16 && valeur < 20) || (valeur > 70 && valeur < 80) || (valeur > 90 && valeur < 100)){
   				valeurDizaine -= 10;  			
   				valeurUnite +=  10;
   			}
   			
   			if(valeurDizaine == 0){
				result = result + " " + convertIntToString(valeurUnite);
			}
			else if(valeurUnite == 0){
				result = result + " " + convertIntToString(valeurDizaine);
			}
			else if(valeurUnite == 1){
				result = result + " " + convertIntToString(valeurDizaine)
				+ " et " + convertIntToString(valeurUnite);
			}
			else{
				result = result + " " + convertIntToString(valeurDizaine)
				+ "-" + convertIntToString(valeurUnite);
			}
   	 }
   	
   	 return result.trim();
   }

   /**Méthode permettant de convertir le réel sous forme de lettre
    * @param realToString valeur réelle qu'on veut sous forme de chaine
    * @return Nombre sous forme de lettres*/   
   public static String convertRealToString(double intToString){
   	 int valeurApresVirgule = (int)(intToString - (int)intToString);
   	 int valeurAvantVirgule = (int)(intToString - valeurApresVirgule);
   	 String result = "";
   	 
   	 if(valeurApresVirgule == 0){
   	 	result = convertIntToString(valeurAvantVirgule);
   	 }
   	 else{
   	 	result = convertIntToString(valeurAvantVirgule) + ","
			+ convertIntToString(valeurApresVirgule);
   	 }
   	 
   	 return result ;
   }

Historique

20 juin 2005 14:12:42 :
Petit oubli :p
28 juin 2005 10:23:44 :
petites corrections

Commentaires et avis

signaler à un administrateur
Commentaire de AbriBus le 21/06/2005 07:46:09

Salut...
C'est amusant...héhé... moi j'aime bien :D
AbriBus

signaler à un administrateur
Commentaire de sesram le 27/06/2005 17:10:40

Salut,

Félicitation pour cet excellent morceau de code. Néanmoins j'ai cru relever une erreur :

int valeurMille = (int)valeur / 1000;
        if(valeur > 1000){
            if(valeurMille != 0) // ne faudrait-il pas marquer >1 au lieu de !=0
            {
                result = result + " " + convertIntToString(valeurMille) + " mille";
            }
            else{
                result = result + " mille";
            }
            
            valeur = valeur - (valeurMille * 1000);
        }  


Encore bravo pour ce code.

Sesram

signaler à un administrateur
Commentaire de indiana_jules le 28/06/2005 10:18:02

Euh vi effectivement, ya bien une erreur, merci de me l'avoir indiquer, je corrige ca tout de suite

signaler à un administrateur
Commentaire de muad-dib le 09/02/2006 01:28:31

Salut sympa cette source.

Je vais chipoter mais il faut mettre :
        
if(valeur >= 1000000000)

au lieu de

if(valeur > 1000000000)

sinon on obtient dix cent millions au lieu d'un milliard

Idem pour million et mille

Quant à 100, j'obtiens un erreur de stackOverflow ... idem pour 98 ou 99 --> convertIntToString(98) ca plante

Donc à améliorer !

signaler à un administrateur
Commentaire de Anthed le 23/11/2007 17:00:47

Attention aux fautes de syntaxe :
- 'cent' et 'vingt' ne prennent un 's' à la fin que s'ils ne sont suivis de rien (deux cents / deux cent onze)
- un tiret doit être ajouté entre chacun des mots constituant un nombre inférieur à 100 (mille deux cent quatre-vingt-deux).

signaler à un administrateur
Commentaire de indiana_jules le 24/11/2007 09:23:01

Oups
je savais bien que je suis nul en français :/

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Java: convertir une lettre en un entier [ par anor ] je voudrais convertir une lettre en un entier, par exemple a en 1, b en 2, le point d'intérogation en 3 en java, c'est possible? Convertir un tableau d’entier en String [ par kaninama ] Bonjour, Je veux convertir tout un tableau d'entier en String mais je n'arrive pas a réalisé cela vu que je suis débutante en java, j'ai essayé < Recherche d'un caractère dans un tableau [ par ghostkill77 ] Bonsoir tout le monde ,J'ai un programme a faire qui me demande de creer un tableau T  qui prend en parametre un ou plusieur entier (c'est a moi de de convertir du vba en java [ par DAM3117 ] bonjour à tousJ'ai une base excel avec un grand nombre de macros en vba et je voudrai le convertir en java.mais je ne sais comment faire.merci à tous rechercher des lettres dans une chaine [ par ralebole ] Voila mon probleme je voudrais savoir si un catactere se trouve dans une chaine Exemple String chaine = "maison";Char lettre ='a';int longueurchaine=c Convertir des fichiers exe ou swf en fichier java [ par cruzy ] bonjourje souhaiterais convertir des fichiers exe ou swf (flash) en fichier java pour etre lu par un telephone portable (par exemple pour me creer mes JTable + trie [ par lolla19_116 ] Bonjour, ma question est comment je peux trier un jtable apartir d'une jtextfeild. par exemple si je tape une lettre ou + le jtable liste tt les donné inserer et supprimer des elemnts dans un tableau [ par brahimhakkou ] Bonjour,j'ai un probleme je sais pas comment le resoudrej'ai un tableau d'entiers, au moment de la construction d'une instance de la classe, le tablea Convertir heure GMT en heure locale [ par KeniiyK ] Bonjour,Je recoi la date et l'heure GMT par liaison rs232 ensuite il faut que je mette mon système (Windows) à cette date et heure.1- Comment faire la convertir de string en date [ par kam81 ] Salut,Comment convertir une chaine de caracteres en date e verifier si le format est bon?Merci.


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.