Nombre vers texte

Nombre vers texte - PHP - Programmation

Marsh Posté le 30-01-2007 à 17:40:48    

Bonjour !

 

Dans un projet professionnel, il me fallait une fonction me permettant de traduire un nombre entier en toute lettre. Or, malgré mes recherches, je n'ai pu trouver de fonction de ce type toute faite.

 

Je vous transmet donc mon travail. N'ayant pas trouver de fonction, je l'ai faite moi-même. elle fonctionne bien d'après les tests que j'ai effectués et permet de transcrire n'importe quel entier >= 0 de n'importe quelle longueur.

 

J'aimerai que vous me fassiez parvenir vos remarques, bugs trouvés, optimisations, etc...
Sinon, vous pouvez utiliser cette fonction comme bon vous semble, c'est cadeau :p

 
Code :
  1. //****************************************************************************************************
  2. // DESCRIPTION : Cette fonction renvoie la chaine correspondant à un nombre (ex 5 => Cinq)
  3. // PARAMETRES : nombre
  4. // RETOUR : nombre en chaine
  5. //****************************************************************************************************
  6. function php_nombre_vers_lettres($nombre)
  7. {
  8.    // Ecriture du dictionnaire
  9.    $dico = Array(0 => "zéro",
  10.                  1 => "un",
  11.                  2 => "deux",
  12.                  3 => "trois",
  13.                  4 => "quatre",
  14.                  5 => "cinq",
  15.                  6 => "six",
  16.                  7 => "sept",
  17.                  8 => "huit",
  18.                  9 => "neuf",
  19.                  10 => "dix",
  20.                  20 => "vingt",
  21.                  30 => "trente",
  22.                  40 => "quarante",
  23.                  50 => "cinquante",
  24.                  60 => "soixante",
  25.                  70 => "soixante-dix",
  26.                  80 => "quatre-vingt",
  27.                  90 => "quatre-vingt-dix" );
  28.    // Ecriture des exceptions
  29.    $exceptions = Array(11 => "onze",12 => "douze",13 => "trieze",14 => "quatorze",15 => "quinze",16 => "seize" );
  30.      
  31.    $chaine = "";
  32.    if(strlen($nombre) == 1)
  33.    {
  34.       $chaine = $dico[$nombre];
  35.    }
  36.    elseif(strlen($nombre) > 1)
  37.    {
  38.       ///////////////////////////////
  39.       // Gestion des deux derniers
  40.       ///////////////////////////////
  41.       $sous_chaine = substr($nombre,-2,2);
  42.       // Est-ce une exception ?
  43.       if(in_array($sous_chaine, $exceptions))
  44.       {
  45.          $chaine .= $exceptions[$sous_chaine];
  46.       }
  47.       else
  48.       {
  49.          // Extraction de la dizaine
  50.          $dizaine = substr($sous_chaine,0,1);
  51.          $unite = substr($sous_chaine,1,1);
  52.          
  53.          // test du "et"
  54.          if(($unite == "1" ) && ($dizaine != "8" ))
  55.          {
  56.             $separateur = "-et-";
  57.          }
  58.          elseif($unite != "0" && $dizaine != "0" )
  59.          {
  60.             $separateur = "-";
  61.          }
  62.          else
  63.          {
  64.             $separateur = "";
  65.          }
  66.          
  67.          // Test de l'exception de la dizaine
  68.          if(($dizaine == "7" || $dizaine == "9" ) && ($unite != "0" ))
  69.          {
  70.             $unite_texte = ($unite != 0) ? (array_key_exists(($unite+10),$exceptions) ? $exceptions[($unite+10)] : ("dix-".$dico[substr($unite+10,1,1)])) : "";
  71.             $dizaine_texte = ($dizaine != 0) ? $dico[($dizaine*10)-10] : "";
  72.             $chaine .= $dizaine_texte.$separateur.$unite_texte;
  73.          }
  74.          elseif(array_key_exists($sous_chaine,$exceptions))
  75.          {
  76.             $chaine .= $exceptions[$sous_chaine];
  77.          }
  78.          else
  79.          {
  80.             $unite_texte = ($unite != 0) ? $dico[$unite] : "";
  81.             $dizaine_texte = ($dizaine != 0) ? $dico[($dizaine*10)] : "";
  82.             $chaine .= $dizaine_texte.$separateur.$unite_texte;
  83.          }
  84.       }
  85.      
  86.       ///////////////////////////////
  87.       // Gestion des unités supérieures
  88.       ///////////////////////////////
  89.       // Centaines
  90.       if(strlen($nombre) >= 3)
  91.       {
  92.          $sous_chaine = substr($nombre,-3,1);
  93.          if($sous_chaine == "0" )
  94.          {
  95.             $chaine = " ".$chaine;
  96.          }
  97.          elseif($sous_chaine == "1" )
  98.          {
  99.             $chaine = "cent ".$chaine;
  100.          }
  101.          else
  102.          {
  103.             $debut_chaine = $dico[$sous_chaine]."-cent ";
  104.             $chaine = $debut_chaine.$chaine;
  105.          }
  106.       }
  107.       // Milliers
  108.       if((strlen($nombre) >= 6) && (IntVal(substr($nombre,-6,3)) != 0))
  109.       {
  110.          $chaine = php_nombre_vers_lettres(substr($nombre,-6,3))." mille ".$chaine;
  111.       }
  112.       elseif((strlen($nombre) == 5) && (IntVal(substr($nombre,-5,2)) != 0))
  113.       {
  114.          $chaine = php_nombre_vers_lettres(substr($nombre,-5,2))." mille ".$chaine;
  115.       }
  116.       elseif((strlen($nombre) == 4) && (substr($nombre,-4,1) == "0" ))
  117.       {
  118.          if(substr($nombre,-4,1) == "1" )
  119.          {
  120.             $chaine = " mille ".$chaine;
  121.          }
  122.          else
  123.          {
  124.             $chaine = php_nombre_vers_lettres(substr($nombre,-4,1))." mille ".$chaine;
  125.          }
  126.       }
  127.       // Millions
  128.       if((strlen($nombre) >= 9) && (IntVal(substr($nombre,-9,3)) != 0))
  129.       {
  130.          $chaine = php_nombre_vers_lettres(substr($nombre,-9,3))." million ".$chaine;
  131.       }
  132.       elseif((strlen($nombre) == 8) && (IntVal(substr($nombre,-8,2)) != 0))
  133.       {
  134.          $chaine = php_nombre_vers_lettres(substr($nombre,-8,2))." million ".$chaine;
  135.       }
  136.       elseif((strlen($nombre) == 7) && (IntVal(substr($nombre,-7,1)) != 0))
  137.       {
  138.          $chaine = php_nombre_vers_lettres(substr($nombre,-7,1))." million ".$chaine;
  139.       }
  140.      
  141.       // Milliards
  142.       if(strlen($nombre) >= 12)
  143.       {
  144.          $chaine = php_nombre_vers_lettres(substr($nombre,-12,3))." milliard ".$chaine;
  145.       }
  146.       elseif(strlen($nombre) == 11)
  147.       {
  148.          $chaine = php_nombre_vers_lettres(substr($nombre,-11,2))." milliard ".$chaine;
  149.       }
  150.       elseif(strlen($nombre) == 10)
  151.       {
  152.          $chaine = php_nombre_vers_lettres(substr($nombre,-10,1))." milliard ".$chaine;
  153.       }
  154.      
  155.       // Vers l'infini et au delà !
  156.       if(strlen($nombre) > 12)
  157.       {
  158.          $chaine = php_nombre_vers_lettres(substr($nombre,0,-13))." ".$chaine;
  159.       }
  160.    }
  161.    // Retour du résultat
  162.    return $chaine;
  163. }
 

Merci, A+ ;)


Message édité par benjones le 30-01-2007 à 17:45:29
Reply

Marsh Posté le 30-01-2007 à 17:40:48   

Reply

Marsh Posté le 30-01-2007 à 18:14:01    

petite remarque : 2000 devrait donner "deux milles" et non "deux mille" comme ton code semble le faire si j'ai vu. idem pour les centaines, les autres milliers, les millions ...

Reply

Marsh Posté le 30-01-2007 à 23:19:50    

ton code me parait bine long pour faire bien peut de choses.... (debutant?)

Reply

Marsh Posté le 31-01-2007 à 08:58:24    

omega2 a écrit :

2000 devrait donner "deux milles" et non "deux mille"

exception pour mille qui est invariable  ;)  

Reply

Marsh Posté le 31-01-2007 à 09:41:23    

Merci pour vos remarques. Non je ne suis pas débutant, mais manque de temps surtout ^^
C'est aussi pour cela que j'ai posté ma fonction pour essayer de l'améliorer. Ceci n'est qu'une première ébauche.
 
red faction, as-tu des idées qui pourrait me permettre de réduire la taille de ma fonction ? Merci.

Reply

Marsh Posté le 31-01-2007 à 11:41:18    

red faction a écrit :

ton code me parait bine long pour faire bien peut de choses.... (debutant?)


 
Propose quelque chose de plus simple alors ?
 
critique c'est bien mais proposé quelque chose c'est beaucoup mieux  :sarcastic:

Reply

Marsh Posté le 31-01-2007 à 11:45:15    

benjones a écrit :

Merci pour vos remarques. Non je ne suis pas débutant, mais manque de temps surtout ^^
C'est aussi pour cela que j'ai posté ma fonction pour essayer de l'améliorer. Ceci n'est qu'une première ébauche.
 
red faction, as-tu des idées qui pourrait me permettre de réduire la taille de ma fonction ? Merci.


 
Ca ne marche pas pour 2000 par exemple chez moi

Reply

Marsh Posté le 31-01-2007 à 12:05:37    

Oui très juste ;)
 
Merci beaucoup pour ta remarque. Un == au lieu de != ^^
Voici la correction :
 

Code :
  1. //****************************************************************************************************
  2. // DESCRIPTION : Cette fonction renvoie la chaine correspondant à un nombre (ex 5 => Cinq)
  3. // PARAMETRES : nombre
  4. // RETOUR : nombre en chaine
  5. //****************************************************************************************************
  6. function php_nombre_vers_lettres($nombre)
  7. {
  8.    // Ecriture du dictionnaire
  9.    $dico = Array(0 => "zéro",
  10.                  1 => "un",
  11.                  2 => "deux",
  12.                  3 => "trois",
  13.                  4 => "quatre",
  14.                  5 => "cinq",
  15.                  6 => "six",
  16.                  7 => "sept",
  17.                  8 => "huit",
  18.                  9 => "neuf",
  19.                  10 => "dix",
  20.                  20 => "vingt",
  21.                  30 => "trente",
  22.                  40 => "quarante",
  23.                  50 => "cinquante",
  24.                  60 => "soixante",
  25.                  70 => "soixante-dix",
  26.                  80 => "quatre-vingt",
  27.                  90 => "quatre-vingt-dix" );
  28.    // Ecriture des exceptions
  29.    $exceptions = Array(11 => "onze",12 => "douze",13 => "trieze",14 => "quatorze",15 => "quinze",16 => "seize" );
  30.        
  31.    $chaine = "";
  32.    if(strlen($nombre) == 1)
  33.    {
  34.       $chaine = $dico[$nombre];
  35.    }
  36.    elseif(strlen($nombre) > 1)
  37.    {
  38.       ///////////////////////////////
  39.       // Gestion des deux derniers
  40.       ///////////////////////////////
  41.       $sous_chaine = substr($nombre,-2,2);
  42.       // Est-ce une exception ?
  43.       if(in_array($sous_chaine, $exceptions))
  44.       {
  45.          $chaine .= $exceptions[$sous_chaine];
  46.       }
  47.       else
  48.       {
  49.          // Extraction de la dizaine
  50.          $dizaine = substr($sous_chaine,0,1);
  51.          $unite = substr($sous_chaine,1,1);
  52.          
  53.          // test du "et"
  54.          if(($unite == "1" ) && ($dizaine != "8" ))
  55.          {
  56.             $separateur = "-et-";
  57.          }
  58.          elseif($unite != "0" && $dizaine != "0" )
  59.          {
  60.             $separateur = "-";
  61.          }
  62.          else
  63.          {
  64.             $separateur = "";
  65.          }
  66.          
  67.          // Test de l'exception de la dizaine
  68.          if(($dizaine == "7" || $dizaine == "9" ) && ($unite != "0" ))
  69.          {
  70.             $unite_texte = ($unite != 0) ? (array_key_exists(($unite+10),$exceptions) ? $exceptions[($unite+10)] : ("dix-".$dico[substr($unite+10,1,1)])) : "";
  71.             $dizaine_texte = ($dizaine != 0) ? $dico[($dizaine*10)-10] : "";
  72.             $chaine .= $dizaine_texte.$separateur.$unite_texte;
  73.          }
  74.          elseif(array_key_exists($sous_chaine,$exceptions))
  75.          {
  76.             $chaine .= $exceptions[$sous_chaine];
  77.          }
  78.          else
  79.          {
  80.             $unite_texte = ($unite != 0) ? $dico[$unite] : "";
  81.             $dizaine_texte = ($dizaine != 0) ? $dico[($dizaine*10)] : "";
  82.             $chaine .= $dizaine_texte.$separateur.$unite_texte;
  83.          }
  84.       }
  85.        
  86.       ///////////////////////////////
  87.       // Gestion des unités supérieures
  88.       ///////////////////////////////
  89.       // Centaines
  90.       if(strlen($nombre) >= 3)
  91.       {
  92.          $sous_chaine = substr($nombre,-3,1);
  93.          if($sous_chaine == "0" )
  94.          {
  95.             $chaine = " ".$chaine;
  96.          }
  97.          elseif($sous_chaine == "1" )
  98.          {
  99.             $chaine = "cent ".$chaine;
  100.          }
  101.          else
  102.          {
  103.             $debut_chaine = $dico[$sous_chaine]."-cent ";
  104.             $chaine = $debut_chaine.$chaine;
  105.          }
  106.       }
  107.       // Milliers
  108.       if((strlen($nombre) >= 6) && (IntVal(substr($nombre,-6,3)) != 0))
  109.       {
  110.          $chaine = php_nombre_vers_lettres(substr($nombre,-6,3))." mille ".$chaine;
  111.       }
  112.       elseif((strlen($nombre) == 5) && (IntVal(substr($nombre,-5,2)) != 0))
  113.       {
  114.          $chaine = php_nombre_vers_lettres(substr($nombre,-5,2))." mille ".$chaine;
  115.       }
  116.       elseif((strlen($nombre) == 4) && (substr($nombre,-4,1) != "0" ))
  117.       {
  118.          if(substr($nombre,-4,1) == "1" )
  119.          {
  120.             $chaine = " mille ".$chaine;
  121.          }
  122.          else
  123.          {
  124.             $chaine = php_nombre_vers_lettres(substr($nombre,-4,1))." mille ".$chaine;
  125.          }
  126.       }
  127.       // Millions
  128.       if((strlen($nombre) >= 9) && (IntVal(substr($nombre,-9,3)) != 0))
  129.       {
  130.          $chaine = php_nombre_vers_lettres(substr($nombre,-9,3))." million ".$chaine;
  131.       }
  132.       elseif((strlen($nombre) == 8) && (IntVal(substr($nombre,-8,2)) != 0))
  133.       {
  134.          $chaine = php_nombre_vers_lettres(substr($nombre,-8,2))." million ".$chaine;
  135.       }
  136.       elseif((strlen($nombre) == 7) && (IntVal(substr($nombre,-7,1)) != 0))
  137.       {
  138.          $chaine = php_nombre_vers_lettres(substr($nombre,-7,1))." million ".$chaine;
  139.       }
  140.        
  141.       // Milliards
  142.       if(strlen($nombre) >= 12)
  143.       {
  144.          $chaine = php_nombre_vers_lettres(substr($nombre,-12,3))." milliard ".$chaine;
  145.       }
  146.       elseif(strlen($nombre) == 11)
  147.       {
  148.          $chaine = php_nombre_vers_lettres(substr($nombre,-11,2))." milliard ".$chaine;
  149.       }
  150.       elseif(strlen($nombre) == 10)
  151.       {
  152.          $chaine = php_nombre_vers_lettres(substr($nombre,-10,1))." milliard ".$chaine;
  153.       }
  154.        
  155.       // Vers l'infini et au delà !
  156.       if(strlen($nombre) > 12)
  157.       {
  158.          $chaine = php_nombre_vers_lettres(substr($nombre,0,-13))." ".$chaine;
  159.       }
  160.    }
  161.    // Retour du résultat
  162.    return $chaine;
  163. }


Reply

Marsh Posté le 31-01-2007 à 14:22:42    

red faction a écrit :

bon j'ai pas tout testé, fait comme ca from scratch en 5min...

from scratch ou from http://fr.php.net/dechex#60158 ?
 
sinon ça a l'air pas mal mais manque la gestion des exceptions comme 91 (quatre-vingt-dix un) par exemple

Reply

Marsh Posté le 31-01-2007 à 15:10:41    

Reply

Marsh Posté le 31-01-2007 à 15:10:41   

Reply

Marsh Posté le 31-01-2007 à 15:19:56    

dommage d'avoir effacer ton code (efficace au passage) ainsi que l'insulte...
 
voici le code en question pour ceux que ça interesse

Code :
  1. function decrom($dec) {
  2. $digits=array(
  3.     1 => "un",
  4.     2 => "deux",
  5.     3 => "trois",
  6.     4 => "quatre",
  7.     5 => "cinq",
  8.     6 => "six",
  9.     7 => "sept",
  10.     8 => "huit",
  11.     9 => "neuf",
  12.     10 => "dix",
  13.     11 => "onze",
  14.     12 => "douze",
  15.     13 => "treize",
  16.     14 => "quatorze",
  17.     15 => "quinze",
  18.     16 => "seize",
  19.     17 => "dix-sept",
  20.     18 => "dix-huit",
  21.     19 => "dix-neuf",
  22.     20 => "vingt",
  23.     30 => "trente",
  24.     40 => "quarante",
  25.     50 => "cinquante",
  26.     60 => "soixante",
  27.     70 => "soixante-dix",
  28.     80 => "quatre-vingt",
  29.     90 => "quatre-vingt-dix",
  30.     100 => "cent",
  31.     1000 => "mille",
  32.     1000000 => "million",
  33.     1000000000 => "milliard"
  34. );
  35. krsort($digits);
  36. $retval="";
  37. foreach($digits as $key => $value){
  38.  $l=0;
  39.  while($dec>=$key){
  40.   $dec-=$key;
  41.   $l++;         
  42.  }
  43.  if($l>1 || ($key>=1000000 && $l!=0)) $retval.=decrom($l).' '.$value.' ';
  44.  else  if($l==1) $retval.=$value.' ';                 
  45. }
  46. return $retval;
  47. }

Reply

Marsh Posté le 31-01-2007 à 15:32:05    

va te pendre

Reply

Marsh Posté le 31-01-2007 à 15:55:24    

red faction> calmos ...  [:shakalagoons]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 31-01-2007 à 15:57:12    

Merci pour ce morceau de code, mais je n'arrive pas à ajouter la gestion des exceptions sans en revenir à ma première version (ou presque)... Je vais essayer d'approfondir dès que j'ai plus de temps.
 
Merci.

Reply

Marsh Posté le 31-01-2007 à 17:10:54    

J'ai ajouté le support des "s" à ma fonction actuelle :p
 
Merci à omega2 et soju pour la remarque.
 

Code :
  1. //****************************************************************************************************
  2. // DESCRIPTION : Cette fonction renvoie la chaine correspondant à un nombre (ex 5 => Cinq)
  3. // PARAMETRES : nombre
  4. // RETOUR : nombre en chaine
  5. //****************************************************************************************************
  6. function php_nombre_vers_lettres($nombre)
  7. {
  8.    // Ecriture du dictionnaire
  9.    $dico = Array(0 => "zéro",
  10.                  1 => "un",
  11.                  2 => "deux",
  12.                  3 => "trois",
  13.                  4 => "quatre",
  14.                  5 => "cinq",
  15.                  6 => "six",
  16.                  7 => "sept",
  17.                  8 => "huit",
  18.                  9 => "neuf",
  19.                  10 => "dix",
  20.                  20 => "vingt",
  21.                  30 => "trente",
  22.                  40 => "quarante",
  23.                  50 => "cinquante",
  24.                  60 => "soixante",
  25.                  70 => "soixante-dix",
  26.                  80 => "quatre-vingt",
  27.                  90 => "quatre-vingt-dix" );
  28.    // Ecriture des exceptions
  29.    $exceptions = Array(11 => "onze",12 => "douze",13 => "trieze",14 => "quatorze",15 => "quinze",16 => "seize" );
  30.        
  31.    $chaine = "";
  32.    if(strlen($nombre) == 1)
  33.    {
  34.       $chaine = $dico[$nombre];
  35.    }
  36.    elseif(strlen($nombre) > 1)
  37.    {
  38.       ///////////////////////////////
  39.       // Gestion des deux derniers
  40.       ///////////////////////////////
  41.       $sous_chaine = substr($nombre,-2,2);
  42.       // Est-ce une exception ?
  43.       if(in_array($sous_chaine, $exceptions))
  44.       {
  45.          $chaine .= $exceptions[$sous_chaine];
  46.       }
  47.       else
  48.       {
  49.          // Extraction de la dizaine
  50.          $dizaine = substr($sous_chaine,0,1);
  51.          $unite = substr($sous_chaine,1,1);
  52.          
  53.          // test du "et"
  54.          if(($unite == "1" ) && ($dizaine != "8" ))
  55.          {
  56.             $separateur = "-et-";
  57.          }
  58.          elseif($unite != "0" && $dizaine != "0" )
  59.          {
  60.             $separateur = "-";
  61.          }
  62.          else
  63.          {
  64.             $separateur = "";
  65.          }
  66.          
  67.          // Test de l'exception de la dizaine
  68.          if(($dizaine == "7" || $dizaine == "9" ) && ($unite != "0" ))
  69.          {
  70.             $unite_texte = ($unite != 0) ? (array_key_exists(($unite+10),$exceptions) ? $exceptions[($unite+10)] : ("dix-".$dico[substr($unite+10,1,1)])) : "";
  71.             $dizaine_texte = ($dizaine != 0) ? $dico[($dizaine*10)-10] : "";
  72.             $chaine .= $dizaine_texte.$separateur.$unite_texte;
  73.          }
  74.          elseif(array_key_exists($sous_chaine,$exceptions))
  75.          {
  76.             $chaine .= $exceptions[$sous_chaine];
  77.          }
  78.          else
  79.          {
  80.             $unite_texte = ($unite != 0) ? $dico[$unite] : "";
  81.             $dizaine_texte = ($dizaine != 0) ? $dico[($dizaine*10)] : "";
  82.             $chaine .= $dizaine_texte.$separateur.$unite_texte;
  83.          }
  84.       }
  85.        
  86.       ///////////////////////////////
  87.       // Gestion des unités supérieures
  88.       ///////////////////////////////
  89.       // Centaines
  90.       if(strlen($nombre) >= 3)
  91.       {
  92.          $sous_chaine = substr($nombre,-3,1);
  93.          if($sous_chaine == "0" )
  94.          {
  95.             $chaine = " ".$chaine;
  96.          }
  97.          elseif($sous_chaine == "1" )
  98.          {
  99.             $chaine = "cent ".$chaine;
  100.          }
  101.          else
  102.          {
  103.             $debut_chaine = $dico[$sous_chaine]."-cents ";
  104.             $chaine = $debut_chaine.$chaine;
  105.          }
  106.       }
  107.       // Milliers
  108.       if((strlen($nombre) >= 6) && (IntVal(substr($nombre,-6,3)) != 0))
  109.       {
  110.          $chaine = php_nombre_vers_lettres(substr($nombre,-6,3))." mille ".$chaine;
  111.       }
  112.       elseif((strlen($nombre) == 5) && (IntVal(substr($nombre,-5,2)) != 0))
  113.       {
  114.          $chaine = php_nombre_vers_lettres(substr($nombre,-5,2))." mille ".$chaine;
  115.       }
  116.       elseif((strlen($nombre) == 4) && (substr($nombre,-4,1) != "0" ))
  117.       {
  118.          if(substr($nombre,-4,1) == "1" )
  119.          {
  120.             $chaine = " mille ".$chaine;
  121.          }
  122.          else
  123.          {
  124.             $chaine = php_nombre_vers_lettres(substr($nombre,-4,1))." mille ".$chaine;
  125.          }
  126.       }
  127.       // Millions
  128.       if((strlen($nombre) >= 9) && (IntVal(substr($nombre,-9,3)) != 0))
  129.       {
  130.          $chaine = php_nombre_vers_lettres(substr($nombre,-9,3))." millions ".$chaine;
  131.       }
  132.       elseif((strlen($nombre) == 8) && (IntVal(substr($nombre,-8,2)) != 0))
  133.       {
  134.          $chaine = php_nombre_vers_lettres(substr($nombre,-8,2))." millions ".$chaine;
  135.       }
  136.       elseif((strlen($nombre) == 7) && (IntVal(substr($nombre,-7,1)) != 0))
  137.       {
  138.          $s = (substr($nombre,-7,1) > 1) ? "s" : "";
  139.          $chaine = php_nombre_vers_lettres(substr($nombre,-7,1))." million{$s} ".$chaine;
  140.       }
  141.        
  142.       // Milliards
  143.       if(strlen($nombre) >= 12)
  144.       {
  145.          $chaine = php_nombre_vers_lettres(substr($nombre,-12,3))." milliard ".$chaine;
  146.       }
  147.       elseif(strlen($nombre) == 11)
  148.       {
  149.          $chaine = php_nombre_vers_lettres(substr($nombre,-11,2))." milliard ".$chaine;
  150.       }
  151.       elseif(strlen($nombre) == 10)
  152.       {
  153.          $s = (substr($nombre,-10,1) > 1) ? "s" : "";
  154.          $chaine = php_nombre_vers_lettres(substr($nombre,-10,1))." milliard{$s} ".$chaine;
  155.       }
  156.        
  157.       // Vers l'infini et au delà !
  158.       if(strlen($nombre) > 12)
  159.       {
  160.          $chaine = php_nombre_vers_lettres(substr($nombre,0,-13))." ".$chaine;
  161.       }
  162.    }
  163.    // Retour du résultat
  164.    return $chaine;
  165. }

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed