begin process at 2010 02 09 12:11:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > ECRIRE UN NOMBRE ENTIER EN TOUTE LETTRE

ECRIRE UN NOMBRE ENTIER EN TOUTE LETTRE


 Information sur la source

Note :
4,5 / 10 - par 2 personnes
4,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Classé sous :nombre, entier, lettre, chiffre, convertir Niveau :Débutant Date de création :15/02/2003 Date de mise à jour :15/02/2003 17:43:11 Vu :34 606

Auteur : JHelp

Ecrire un message privé
Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

 Description

Comme le titre l'indique ce code permet de transfomer un entier en toute lettre.
C'est à dire 123, devient "cent vingt trois"
4563 devient "quatre mille cinq cent soixante trois"

Source

  • package utilitaires;
  • /**
  • * <p>Titre : Utilitaires</p>
  • * <p>Description : Divers utilitaires</p>
  • * <p>Copyright : Copyright (c) 2002</p>
  • * <p>Société : GG</p>
  • * @author JHelp
  • * @version 1.0
  • */
  • /**
  • * Classe permetant de transformer un entier en don écriture en toute lettre <BR>
  • * Exemple : 123 devient cent vingt trois
  • */
  • public class Nombre
  • {
  • /**
  • * Représentaion en lettre de 0
  • */
  • public static final String ZERO="zéro";
  • /**
  • * Représentaion en lettre de 1
  • */
  • public static final String UN="un";
  • /**
  • * Représentaion en lettre de 2
  • */
  • public static final String DEUX="deux";
  • /**
  • * Représentaion en lettre de 3
  • */
  • public static final String TROIS="trois";
  • /**
  • * Représentaion en lettre de 4
  • */
  • public static final String QUATRE="quatre";
  • /**
  • * Représentaion en lettre de 5
  • */
  • public static final String CINQ="cinq";
  • /**
  • * Représentaion en lettre de 6
  • */
  • public static final String SIX="six";
  • /**
  • * Représentaion en lettre de 7
  • */
  • public static final String SEPT="sept";
  • /**
  • * Représentaion en lettre de 8
  • */
  • public static final String HUIT="huit";
  • /**
  • * Représentaion en lettre de 9
  • */
  • public static final String NEUF="neuf";
  • /**
  • * Représentaion en lettre de 10
  • */
  • public static final String DIX="dix";
  • /**
  • * Représentaion en lettre de 11
  • */
  • public static final String ONZE="onze";
  • /**
  • * Représentaion en lettre de 12
  • */
  • public static final String DOUZE="douze";
  • /**
  • * Représentaion en lettre de 13
  • */
  • public static final String TREIZE="treize";
  • /**
  • * Représentaion en lettre de 14
  • */
  • public static final String QUATORZE="quatorze";
  • /**
  • * Représentaion en lettre de 15
  • */
  • public static final String QUINZE="quinze";
  • /**
  • * Représentaion en lettre de 16
  • */
  • public static final String SEIZE="seize";
  • /**
  • * Représentaion en lettre de 20
  • */
  • public static final String VINGT="vingt";
  • /**
  • * Représentaion en lettre de 30
  • */
  • public static final String TRENTE="trente";
  • /**
  • * Représentaion en lettre de 40
  • */
  • public static final String QUARANTE="quarante";
  • /**
  • * Représentaion en lettre de 50
  • */
  • public static final String CINQUANTE="cinquante";
  • /**
  • * Représentaion en lettre de 60
  • */
  • public static final String SOIXANTE="soixante";
  • /**
  • * Représentaion en lettre de 100
  • */
  • public static final String CENT="cent";
  • /**
  • * Représentaion en lettre de 1000
  • */
  • public static final String MILLE="mille";
  • /**
  • * Représentaion en lettre de 1000000
  • */
  • public static final String MILLION="million";
  • /**
  • * Représentaion en lettre de 1000000000
  • */
  • public static final String MILLIARD="milliard";
  • /**
  • * Représentaion en lettre de -
  • */
  • public static final String MOINS="moins";
  • //Nom des différents types de paquet de nombre
  • private static final String[] tab={"",MILLE,MILLION,MILLIARD,MILLE+" "+MILLIARD,
  • MILLION+" de "+MILLIARD,MILLIARD+" de "+MILLIARD};
  • /**
  • * Renvoie la représentation en lettre d'un chiffre, c'est à dire d'un nombre ente 0 et 9
  • */
  • public static String getChiffre(int l)
  • {
  • if((l<0)||(l>9))
  • throw new IllegalArgumentException("Un chiffre est entre 0 et 9, donc "+l+" est interdit");
  • switch(l)
  • {
  • case 0 :
  • return ZERO;
  • case 1 :
  • return UN;
  • case 2 :
  • return DEUX;
  • case 3 :
  • return TROIS;
  • case 4 :
  • return QUATRE;
  • case 5 :
  • return CINQ;
  • case 6 :
  • return SIX;
  • case 7 :
  • return SEPT;
  • case 8 :
  • return HUIT;
  • case 9 :
  • return NEUF;
  • }
  • return null;
  • }
  • //Retourne la représentation en lettre d'un paquet. Un paquet est formé de tois chiffres, comme 123, 012, 001, 100, 101,...
  • private static String paquet(int p)
  • {
  • //On initialise la réponse
  • String reponse="";
  • //Si on a un chiffre des centaines
  • if(p>100)
  • {
  • //Si la valeur est >199 alors, on va mettre devant le chiffre des centaine
  • if(p/100>1)
  • reponse=getChiffre(p/100)+" ";
  • //C'est une centaine, donc on ajoute ensuite "cent"
  • reponse += CENT+" ";
  • //On récupére ce qui n'est pas la centaine
  • p=p%100;
  • }
  • //c chiffre des dizaines
  • //u chaiffre des unitées
  • int c=p/10;
  • int u=p%10;
  • switch(c)
  • {
  • //Si la dizaine est nule, alors le nombre est un chiffre
  • case 0 :
  • if(u!=0)
  • reponse += getChiffre(u);
  • break;
  • case 1 :
  • switch(u)
  • {
  • case 0 :
  • reponse += DIX;
  • break;
  • case 1 :
  • reponse += ONZE;
  • break;
  • case 2 :
  • reponse += DOUZE;
  • break;
  • case 3 :
  • reponse += TREIZE;
  • break;
  • case 4 :
  • reponse += QUATORZE;
  • break;
  • case 5 :
  • reponse += QUINZE;
  • break;
  • case 6 :
  • reponse += SEIZE;
  • break;
  • default :
  • reponse += DIX+" "+getChiffre(u);
  • }
  • break;
  • case 2 :
  • reponse += VINGT;
  • if(u==1)
  • reponse += " et";
  • if(u>0)
  • reponse += " "+getChiffre(u);
  • break;
  • case 3 :
  • reponse += TRENTE;
  • if(u==1)
  • reponse += " et";
  • if(u>0)
  • reponse += " "+getChiffre(u);
  • break;
  • case 4 :
  • reponse += QUARANTE;
  • if(u==1)
  • reponse += " et";
  • if(u>0)
  • reponse += " "+getChiffre(u);
  • break;
  • case 5 :
  • reponse += CINQUANTE;
  • if(u==1)
  • reponse += " et";
  • if(u>0)
  • reponse += " "+getChiffre(u);
  • break;
  • case 6 :
  • reponse += SOIXANTE;
  • if(u==1)
  • reponse += " et";
  • if(u>0)
  • reponse += " "+getChiffre(u);
  • break;
  • case 7 :
  • reponse += SOIXANTE+" ";
  • if(u==1)
  • reponse += " et";
  • switch(u)
  • {
  • case 0 :
  • reponse += DIX;
  • break;
  • case 1 :
  • reponse += ONZE;
  • break;
  • case 2 :
  • reponse += DOUZE;
  • break;
  • case 3 :
  • reponse += TREIZE;
  • break;
  • case 4 :
  • reponse += QUATORZE;
  • break;
  • case 5 :
  • reponse += QUINZE;
  • break;
  • case 6 :
  • reponse += SEIZE;
  • break;
  • default :
  • reponse += DIX+" "+getChiffre(u);
  • }
  • break;
  • case 8 :
  • reponse += QUATRE+" "+VINGT;
  • if(u>0)
  • reponse += " "+getChiffre(u);
  • break;
  • case 9 :
  • reponse += QUATRE+" "+VINGT+" ";
  • switch(u)
  • {
  • case 0 :
  • reponse += DIX;
  • break;
  • case 1 :
  • reponse += ONZE;
  • break;
  • case 2 :
  • reponse += DOUZE;
  • break;
  • case 3 :
  • reponse += TREIZE;
  • break;
  • case 4 :
  • reponse += QUATORZE;
  • break;
  • case 5 :
  • reponse += QUINZE;
  • break;
  • case 6 :
  • reponse += SEIZE;
  • break;
  • default :
  • reponse += DIX+" "+getChiffre(u);
  • }
  • break;
  • }
  • //On renvoie la réponse, à laquelle on retire les éventuels espaces surperflus
  • return reponse.trim();
  • }
  • /**
  • * Renvoie le nombre en lettre, <BR>
  • * ex: 1234567890 devient : un milliard deux cent trente quatre million cinq cent soixante sept mille huit cent quatre vingt dix
  • */
  • public static String getLettre(long l)
  • {
  • //Cas zéro
  • if(l==0L)
  • return ZERO;
  • String signe="";
  • //Cas négatif
  • if(l<0L)
  • {
  • //On prned la valeur absolue
  • l=-l;
  • //On ajoutera moins devant
  • signe=MOINS+" ";
  • }
  • //Initilisation de la réponse
  • String reponse="";
  • //Rang du paquet actuel, on va parcourir le nombre de gauche à droite, le premier paquet de 123456 sera donc : 456
  • int rang=0;
  • while(l>0L)
  • {
  • //on ajoute le paquet devant la réponse
  • reponse=paquet((int)(l%1000L))+" "+tab[rang]+" "+reponse;
  • //on passe au paquet suivant
  • l=l/1000L;
  • rang++;
  • }
  • //on ajoute le signe éventuel
  • reponse=signe+reponse;
  • //On renvoie la réponse, à laquelle on retire les éventuels espaces surperflus
  • return reponse.trim();
  • }
  • }
package utilitaires;

/**
 * <p>Titre : Utilitaires</p>
 * <p>Description : Divers utilitaires</p>
 * <p>Copyright : Copyright (c) 2002</p>
 * <p>Société : GG</p>
 * @author JHelp
 * @version 1.0
 */

/**
 * Classe permetant de transformer un entier en don écriture en toute lettre <BR>
 * Exemple : 123 devient cent vingt trois
 */
public class Nombre
{
  /**
   * Représentaion en lettre de 0
   */
  public static final String ZERO="zéro";
  /**
   * Représentaion en lettre de 1
   */
  public static final String UN="un";
  /**
   * Représentaion en lettre de 2
   */
  public static final String DEUX="deux";
  /**
   * Représentaion en lettre de 3
   */
  public static final String TROIS="trois";
  /**
   * Représentaion en lettre de 4
   */
  public static final String QUATRE="quatre";
  /**
   * Représentaion en lettre de 5
   */
  public static final String CINQ="cinq";
  /**
   * Représentaion en lettre de 6
   */
  public static final String SIX="six";
  /**
   * Représentaion en lettre de 7
   */
  public static final String SEPT="sept";
  /**
   * Représentaion en lettre de 8
   */
  public static final String HUIT="huit";
  /**
   * Représentaion en lettre de 9
   */
  public static final String NEUF="neuf";

  /**
   * Représentaion en lettre de 10
   */
  public static final String DIX="dix";
  /**
   * Représentaion en lettre de 11
   */
  public static final String ONZE="onze";
  /**
   * Représentaion en lettre de 12
   */
  public static final String DOUZE="douze";
  /**
   * Représentaion en lettre de 13
   */
  public static final String TREIZE="treize";
  /**
   * Représentaion en lettre de 14
   */
  public static final String QUATORZE="quatorze";
  /**
   * Représentaion en lettre de 15
   */
  public static final String QUINZE="quinze";
  /**
   * Représentaion en lettre de 16
   */
  public static final String SEIZE="seize";

  /**
   * Représentaion en lettre de 20
   */
  public static final String VINGT="vingt";
  /**
   * Représentaion en lettre de 30
   */
  public static final String TRENTE="trente";
  /**
   * Représentaion en lettre de 40
   */
  public static final String QUARANTE="quarante";
  /**
   * Représentaion en lettre de 50
   */
  public static final String CINQUANTE="cinquante";
  /**
   * Représentaion en lettre de 60
   */
  public static final String SOIXANTE="soixante";

  /**
   * Représentaion en lettre de 100
   */
  public static final String CENT="cent";

  /**
   * Représentaion en lettre de 1000
   */
  public static final String MILLE="mille";
  /**
   * Représentaion en lettre de 1000000
   */
  public static final String MILLION="million";
  /**
   * Représentaion en lettre de 1000000000
   */
  public static final String MILLIARD="milliard";

  /**
   * Représentaion en lettre de -
   */
  public static final String MOINS="moins";

  //Nom des différents types de paquet de nombre
  private static final String[] tab={"",MILLE,MILLION,MILLIARD,MILLE+" "+MILLIARD,
      MILLION+" de "+MILLIARD,MILLIARD+" de "+MILLIARD};

  /**
   * Renvoie la représentation en lettre d'un chiffre, c'est à dire d'un nombre ente 0 et 9
   */
  public static String getChiffre(int l)
  {
    if((l<0)||(l>9))
      throw new IllegalArgumentException("Un chiffre est entre 0 et 9, donc "+l+" est interdit");
    switch(l)
    {
      case 0 :
        return ZERO;
      case 1 :
        return UN;
      case 2 :
        return DEUX;
      case 3 :
        return TROIS;
      case 4 :
        return QUATRE;
      case 5 :
        return CINQ;
      case 6 :
        return SIX;
      case 7 :
        return SEPT;
      case 8 :
        return HUIT;
      case 9 :
        return NEUF;
    }
    return null;
  }

  //Retourne la représentation en lettre d'un paquet. Un paquet est formé de tois chiffres, comme 123, 012, 001, 100, 101,...
  private static String paquet(int p)
  {
    //On initialise la réponse
    String reponse="";
    //Si on a un chiffre des centaines
    if(p>100)
    {
      //Si la valeur est >199 alors, on va mettre devant le chiffre des centaine
      if(p/100>1)
        reponse=getChiffre(p/100)+" ";
      //C'est une centaine, donc on ajoute ensuite "cent"
      reponse += CENT+" ";
      //On récupére ce qui n'est pas la centaine
      p=p%100;
    }
    //c chiffre des dizaines
    //u chaiffre des unitées
    int c=p/10;
    int u=p%10;
    switch(c)
    {
      //Si la dizaine est nule, alors le nombre est un chiffre
      case 0 :
        if(u!=0)
          reponse += getChiffre(u);
        break;
      case 1 :
        switch(u)
        {
          case 0 :
            reponse += DIX;
            break;
          case 1 :
            reponse += ONZE;
            break;
          case 2 :
            reponse += DOUZE;
            break;
          case 3 :
            reponse += TREIZE;
            break;
          case 4 :
            reponse += QUATORZE;
            break;
          case 5 :
            reponse += QUINZE;
            break;
          case 6 :
            reponse += SEIZE;
            break;
          default :
            reponse += DIX+" "+getChiffre(u);
        }
        break;
      case 2 :
        reponse += VINGT;
        if(u==1)
          reponse += " et";
        if(u>0)
          reponse += " "+getChiffre(u);
        break;
      case 3 :
        reponse += TRENTE;
        if(u==1)
          reponse += " et";
        if(u>0)
          reponse += " "+getChiffre(u);
        break;
      case 4 :
        reponse += QUARANTE;
        if(u==1)
          reponse += " et";
        if(u>0)
          reponse += " "+getChiffre(u);
        break;
      case 5 :
        reponse += CINQUANTE;
        if(u==1)
          reponse += " et";
        if(u>0)
          reponse += " "+getChiffre(u);
        break;
      case 6 :
        reponse += SOIXANTE;
        if(u==1)
          reponse += " et";
        if(u>0)
          reponse += " "+getChiffre(u);
        break;
      case 7 :
        reponse += SOIXANTE+" ";
        if(u==1)
          reponse += " et";
        switch(u)
        {
          case 0 :
            reponse += DIX;
            break;
          case 1 :
            reponse += ONZE;
            break;
          case 2 :
            reponse += DOUZE;
            break;
          case 3 :
            reponse += TREIZE;
            break;
          case 4 :
            reponse += QUATORZE;
            break;
          case 5 :
            reponse += QUINZE;
            break;
          case 6 :
            reponse += SEIZE;
            break;
          default :
            reponse += DIX+" "+getChiffre(u);
        }
        break;
      case 8 :
        reponse += QUATRE+" "+VINGT;
        if(u>0)
          reponse += " "+getChiffre(u);
        break;
      case 9 :
        reponse += QUATRE+" "+VINGT+" ";
        switch(u)
        {
          case 0 :
            reponse += DIX;
            break;
          case 1 :
            reponse += ONZE;
            break;
          case 2 :
            reponse += DOUZE;
            break;
          case 3 :
            reponse += TREIZE;
            break;
          case 4 :
            reponse += QUATORZE;
            break;
          case 5 :
            reponse += QUINZE;
            break;
          case 6 :
            reponse += SEIZE;
            break;
          default :
            reponse += DIX+" "+getChiffre(u);
        }
        break;
    }
    //On renvoie la réponse, à laquelle on retire les éventuels espaces surperflus
    return reponse.trim();
  }

  /**
   * Renvoie le nombre en lettre, <BR>
   * ex: 1234567890 devient : un milliard deux cent trente quatre million cinq cent soixante sept mille huit cent quatre vingt dix
   */
  public static String getLettre(long l)
  {
    //Cas zéro
    if(l==0L)
      return ZERO;
    String signe="";
    //Cas négatif
    if(l<0L)
    {
      //On prned la valeur absolue
      l=-l;
      //On ajoutera moins devant
      signe=MOINS+" ";
    }
    //Initilisation de la réponse
    String reponse="";
    //Rang du paquet actuel, on va parcourir le nombre de gauche à droite, le premier paquet de 123456 sera donc : 456
    int rang=0;
    while(l>0L)
    {
      //on ajoute le paquet devant la réponse
      reponse=paquet((int)(l%1000L))+" "+tab[rang]+" "+reponse;
      //on passe au paquet suivant
      l=l/1000L;
      rang++;
    }
    //on ajoute le signe éventuel
    reponse=signe+reponse;
    //On renvoie la réponse, à laquelle on retire les éventuels espaces surperflus
    return reponse.trim();
  }
}

 Conclusion

Quand j'aurais le courage, je rajouterais une méthode pour les réels, c'est à dire trans formé 123.456 en "cent vint trois et quatre cent cinquante six centiéme"

JHelp


 Sources du même auteur

Source avec Zip POUR LIRE DU SON
Source avec Zip Source avec une capture PACKAGE ECRAN. UN PACKAGE POUR LA GESTION 2D
VERTICALLAYOUT, ENFIN UN LAYOUT POUR PLACER DES ÉLÉMENTS EN ...
Source avec une capture ARBRE BINAIRE ORDONNÉE, UNE FAÇON DE LES STOCKÉE ET DE LES R...
Source avec Zip ORGANIGRAMME V 2.0

 Sources de la même categorie

Source avec Zip CLASS DEMINEUR par Niidhogg
AJOUTER LE MAIL À LA LISTE DE CONTACT HOTMAIL POUR EVOLUTION... par sarathai
Source avec Zip ENVOI MAIL AVEC JAVA par mdahmoune
Source avec Zip Source avec une capture JADE PAR LA PRATIQUE par mdahmoune
CHUNKEDXML, LIRE DU XML PAR MORCEAU par AlexN

 Sources en rapport avec celle ci

ENTIER EN LETTRES par indiana_jules
Source avec Zip ADDITION DE DEUX NOMBRES RÉELS "COMME A LA MATERNELLE" par zinotron
FORMATAGE DE NOMBRE À LA SORTIE par Jujufouq
COMPARAISON par paradoxreal8
RECHERCHER LES DIVISEURS D'UN NOMBRE par Neozix

Commentaires et avis

Commentaire de Neozix le 18/02/2003 20:46:09

Pas mal... Mais je me demande si toutes les public static final String ZERO="zéro"; n'aurait pas pu être simplifiées. Je dis ça comme ça. Mais ca m'intéresserait de savoir. Je vais essayer de trouver quelque chose... Sinon, source intéressante.

Commentaire de raff le 19/02/2003 06:46:55

hum...sans trop chialer, quand même...bonjour les fautes d'ortographe !!!

Commentaire de coucounet le 30/03/2004 14:49:59

c vrai ça, le code est interressant pour le java, mais aussi pour les fautes d'orthographe.

Si y'en a qui veulent compliquer un peu le code je rappelle que :
20 : vingt
80 : quatre-vingts (avec le tiret et le S à 20)
81 : quatre vint un (sans le tiret sans le S)
100 : cent
200 : deux cents (avec le S à 100)
201 : deux cent un (sans le S)

Voilà bon courage

coucounet

Commentaire de hermes84 le 10/05/2004 09:40:00

sourse 1téresantte ! !g èmé for bcp! merki!

Commentaire de user_two le 16/08/2006 17:01:03

ça ne marche pas pour 100000 ni pour 100000000 ni pour 1000000000.

Au revoir

Commentaire de dohlevaleureux le 16/02/2007 12:27:44

merci pour code il est formidable mais je desire le tester pour cela aide moi a le compilé a plus

Commentaire de clinpus le 17/09/2007 22:20:11

Pourkoi le mille fonctionne pas!!
1000: un mille

Commentaire de dje_jay le 28/09/2007 11:09:39

L'idée a le mérite d'être intéressante. Depuis que ça a été posté, il n'y a pas encore eu de correctif?(posté ailleur,etc...)

Commentaire de marwenjava le 20/01/2008 22:50:22 6/10

Mon ami tu a fé la partie la plus Dur et Voila une petite retouche pour votre travail en utilisant lé double :










   public class Nombre
   {
   /**
   * Représentaion en lettre de 0
   */
   public static final String ZERO="zéro";
   /**
   * Représentaion en lettre de 1
   */
   public static final String UN="un";
   /**
   * Représentaion en lettre de 2
   */
   public static final String DEUX="deux";
   /**
   * Représentaion en lettre de 3
   */
   public static final String TROIS="trois";
   /**
   * Représentaion en lettre de 4
   */
   public static final String QUATRE="quatre";
   /**
   * Représentaion en lettre de 5
   */
   public static final String CINQ="cinq";
   /**
   * Représentaion en lettre de 6
   */
   public static final String SIX="six";
   /**
   * Représentaion en lettre de 7
   */
   public static final String SEPT="sept";
   /**
   * Représentaion en lettre de 8
   */
   public static final String HUIT="huit";
   /**
   * Représentaion en lettre de 9
   */
   public static final String NEUF="neuf";
  
   /**
   * Représentaion en lettre de 10
   */
   public static final String DIX="dix";
   /**
   * Représentaion en lettre de 11
   */
   public static final String ONZE="onze";
   /**
   * Représentaion en lettre de 12
   */
   public static final String DOUZE="douze";
   /**
   * Représentaion en lettre de 13
   */
   public static final String TREIZE="treize";
   /**
   * Représentaion en lettre de 14
   */
   public static final String QUATORZE="quatorze";
   /**
   * Représentaion en lettre de 15
   */
   public static final String QUINZE="quinze";
   /**
   * Représentaion en lettre de 16
   */
   public static final String SEIZE="seize";
  
   /**
   * Représentaion en lettre de 20
   */
   public static final String VINGT="vingt";
   /**
   * Représentaion en lettre de 30
   */
   public static final String TRENTE="trente";
   /**
   * Représentaion en lettre de 40
   */
   public static final String QUARANTE="quarante";
   /**
   * Représentaion en lettre de 50
   */
   public static final String CINQUANTE="cinquante";
   /**
   * Représentaion en lettre de 60
   */
   public static final String SOIXANTE="soixante";
  
   /**
   * Représentaion en lettre de 100
   */
   public static final String CENT="cent";
  
   /**
   * Représentaion en lettre de 1000
   */
   public static final String MILLE="mille";
   /**
   * Représentaion en lettre de 1000000
   */
   public static final String MILLION="million";
   /**
   * Représentaion en lettre de 1000000000
   */
   public static final String MILLIARD="milliard";
  
   /**
   * Représentaion en lettre de -
   */
   public static final String MOINS="moins";
  
   //Nom des différents types de paquet de nombre
   private static final String[] tab={"",MILLE,MILLION,MILLIARD,MILLE+" "+MILLIARD,
   MILLION+" de "+MILLIARD,MILLIARD+" de "+MILLIARD};
  
   /**
   * Renvoie la représentation en lettre d'un chiffre, c'est à dire d'un nombre ente 0 et 9
   */
   public static String getChiffre(int l)
   {
   if((l<0)||(l>9))
   throw new IllegalArgumentException("Un chiffre est entre 0 et 9, donc "+l+" est interdit");
   switch(l)
   {
   case 0 :
   return ZERO;
   case 1 :
   return UN;
   case 2 :
   return DEUX;
   case 3 :
   return TROIS;
   case 4 :
   return QUATRE;
   case 5 :
   return CINQ;
   case 6 :
   return SIX;
   case 7 :
   return SEPT;
   case 8 :
   return HUIT;
   case 9 :
   return NEUF;
   }
   return null;
   }
  
   //Retourne la représentation en lettre d'un paquet. Un paquet est formé de tois chiffres, comme 123, 012, 001, 100, 101,...
   private static String paquet(int p)
   {
   //On initialise la réponse
   String reponse="";
   //Si on a un chiffre des centaines
   if(p>100)
   {
   //Si la valeur est >199 alors, on va mettre devant le chiffre des centaine
   if(p/100>1)
   reponse=getChiffre(p/100)+" ";
   //C'est une centaine, donc on ajoute ensuite "cent"
   reponse += CENT+" ";
   //On récupére ce qui n'est pas la centaine
   p=p%100;
   }
   //c chiffre des dizaines
   //u chaiffre des unitées
   int c=p/10;
   int u=p%10;
   switch(c)
   {
   //Si la dizaine est nule, alors le nombre est un chiffre
   case 0 :
   if(u!=0)
   reponse += getChiffre(u);
   break;
   case 1 :
   switch(u)
   {
   case 0 :
   reponse += DIX;
   break;
   case 1 :
   reponse += ONZE;
   break;
   case 2 :
   reponse += DOUZE;
   break;
   case 3 :
   reponse += TREIZE;
   break;
   case 4 :
   reponse += QUATORZE;
   break;
   case 5 :
   reponse += QUINZE;
   break;
   case 6 :
   reponse += SEIZE;
   break;
   default :
   reponse += DIX+" "+getChiffre(u);
   }
   break;
   case 2 :
   reponse += VINGT;
   if(u==1)
   reponse += " et";
   if(u>0)
   reponse += " "+getChiffre(u);
   break;
   case 3 :
   reponse += TRENTE;
   if(u==1)
   reponse += " et";
   if(u>0)
   reponse += " "+getChiffre(u);
   break;
   case 4 :
   reponse += QUARANTE;
   if(u==1)
   reponse += " et";
   if(u>0)
   reponse += " "+getChiffre(u);
   break;
   case 5 :
   reponse += CINQUANTE;
   if(u==1)
   reponse += " et";
   if(u>0)
   reponse += " "+getChiffre(u);
   break;
   case 6 :
   reponse += SOIXANTE;
   if(u==1)
   reponse += " et";
   if(u>0)
   reponse += " "+getChiffre(u);
   break;
   case 7 :
   reponse += SOIXANTE+" ";
   if(u==1)
   reponse += " et";
   switch(u)
   {
   case 0 :
   reponse += DIX;
   break;
   case 1 :
   reponse += ONZE;
   break;
   case 2 :
   reponse += DOUZE;
   break;
   case 3 :
   reponse += TREIZE;
   break;
   case 4 :
   reponse += QUATORZE;
   break;
   case 5 :
   reponse += QUINZE;
   break;
   case 6 :
   reponse += SEIZE;
   break;
   default :
   reponse += DIX+" "+getChiffre(u);
   }
   break;
   case 8 :
   reponse += QUATRE+" "+VINGT;
   if(u>0)
   reponse += " "+getChiffre(u);
   break;
   case 9 :
   reponse += QUATRE+" "+VINGT+" ";
   switch(u)
   {
   case 0 :
   reponse += DIX;
   break;
   case 1 :
   reponse += ONZE;
   break;
   case 2 :
   reponse += DOUZE;
   break;
   case 3 :
   reponse += TREIZE;
   break;
   case 4 :
   reponse += QUATORZE;
   break;
   case 5 :
   reponse += QUINZE;
   break;
   case 6 :
   reponse += SEIZE;
   break;
   default :
   reponse += DIX+" "+getChiffre(u);
   }
   break;
   }
   //On renvoie la réponse, à laquelle on retire les éventuels espaces surperflus
   return reponse.trim();
   }
  
   /**
   * Renvoie le nombre en lettre, <BR>
   * ex: 1234567890 devient : un milliard deux cent trente quatre million cinq cent soixante sept mille huit cent quatre vingt dix
   */
   public static String getLettre(long l)
   {
   //Cas zéro
   if(l==0L)
   return ZERO;
   String signe="";
   //Cas négatif
   if(l<0L)
   {
   //On prned la valeur absolue
   l=-l;
   //On ajoutera moins devant
   signe=MOINS+" ";
   }
   //Initilisation de la réponse
   String reponse="";
   //Rang du paquet actuel, on va parcourir le nombre de gauche à droite, le premier paquet de 123456 sera donc : 456
   int rang=0;
   while(l>0L)
   {
   //on ajoute le paquet devant la réponse
   reponse=paquet((int)(l%1000L))+" "+tab[rang]+" "+reponse;
   //on passe au paquet suivant
   l=l/1000L;
   rang++;
   }
   //on ajoute le signe éventuel
   reponse=signe+reponse;
   //On renvoie la réponse, à laquelle on retire les éventuels espaces surperflus
   return reponse.trim();
   }
  
  
   public static void main(String args[])
   {
   String valx="";
   String valy="";
   int x=0;

   String nbr="12.693";
   x=nbr.indexOf(".");
  
   valx=nbr.substring(0,x);
   valy=nbr.substring(x+1,nbr.length());
  
  
   System.out.println("==="+valx);
   System.out.println("==="+valy);
  
   long ax=Long.parseLong(valx);
   long ay=Long.parseLong(valy);
  
  
  
   if(x!=-1)
   {
  
   System.out.println(""+getLettre(ax)+" Dinars et "+getLettre(ay)+" Millimes");
  
   }
  
   else
   {
  
   System.out.println(""+getLettre(ax)+" Dinars ");
  
   }
  
  
   }
  
  
  
   }










Commentaire de Abdelelansari le 09/02/2008 20:03:53

    Je connais pas ce genre de programation et je te demande si tu peux l'ecrire en VB et Merci

Commentaire de Wilfreed le 27/01/2009 12:22:02

Bjr
J'ai essayer d'exécuter ce programme dans Netbeans et il m'a indiquer deux erreurs que je ne comprend pas
La Première: au niveau de la déclaration du Package "Utilitaires"
La Deuxième: au niveau de la déclaration de la classe "Nombre"(il me dit que nombre est une claase public donc je dois
mettre le .Java devant et quand je le fais, il me montre tjrs qu'il y une erreur. svp aimez moi. A plus et Merci...

Commentaire de midotueur le 17/04/2009 00:55:13

merci pour ce code ca m'était vraiment trés utile

Commentaire de manolli le 01/12/2009 02:38:04

bonjour
comment faire pr telechargez le zip
merci

Commentaire de nabilham9128113 le 08/01/2010 13:39:22

EREUUUUUUUUUUUUUUUUUUUR  lol.

Ta source est vraiment intéressante , mais je viens de trouver une erreur , ça sera géniale de la corriger.
C'est en fait pour les centaines :

Par exemple : 55100 donne cinquante cinq mille (ce qui faux)
et pire    : 100 ne retourne aucun résultat !!!

 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? [BAR --> SQL]Convertir chiffre en lettre(français) [ par bonoua ] Je travaille sous une base de donné oracle, et je dois afficher dans un etat la somme totale des factures en lettres. J ai essayé avec ceci mais ma re [Date] Convertir un double en date [ par coinki ] Bonjour, j'ai des dates issues de Delphi dont le format se présente sous forme d'un nombre à virgule. Ex : 39933.1669560185 =&gt; 30/04/2009  04:00:25 transforme un entier en lettre sous iReport [ par hafedhaouni ] salut; Comment faire pour [b]transforme un entier en lettre[/b] avec iReport merci. Transcrire un nombre en lettre [ par the_daren ] Salut tout le monde,J'ai commenc&#233; par remplir des tableaux de constantes(tableau unit&#233;,dizaine,centaine puis millier)Code:String Dizaine[]={ Comment savoir si un nombre a des chhiffre apres la virgule? [ par nahzhir ] Bonjour comme le titre du sujet l'indique : je voudrais savoir si un double possede une chiffre apres la virgule dans mon application ce chiffre apres tronquer nombre de chiffre apres virgule [ par mouzoun_issam ] Bah voil&#224;, j'ai float f = 12,45467464 et moi j'veux dans un String recup&#233;rer 12,45.. &nbsp;&#199;a fait d&#233;j&#224; 1/2 heure que je cher 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é < somme de deux nombre entier en java [ par kougsj ] bonjour, jutilise jcreator et je veux faire la somme de deux entiers quelconques.merci de m'aider somme de deux nombre entier entrée au clavier avec jcréator [ par kougsj ] je veu faire la somme de deux entiers entrées au clavier avec jcréatormerci


Nos sponsors


Appels d'offres

Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales