Petit probleme ...

Petit probleme ... - PHP - Programmation

Marsh Posté le 15-01-2007 à 22:59:48    

Bonjour, je voudrais faire une transformation d'un nombre de chiffres (entier) en lettres. Pour cela, j'ai fais mon code, et il ne veux pas marcher correctement, pourriez vous m'aider s'il vous plait ? Le voici :
 

Code :
  1. <?php
  2. function convertitNombreEnLettres($nombreAConvertir)
  3. {
  4. $tablePuissancesDeDix = array("", "mille", "millions", "milliards" );
  5. $tableConversionEtapeDeux = array("", "dix", "vingt", "trente", "quarante", "cinquante", "soixante", "soixante", "quatre-vingt", "quatre-vingt" );
  6. $tableConversionEtapeUnOuTrois = array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf" );
  7. $tableConversionDeLaDizaineQuiFaitChier = array("", "onze", "douze", "treize", "quatorze", "quinze", "seize" );
  8. $nombreAConvertir = number_format($nombreAConvertir);
  9. $tableauTemporaire = explode(',', $nombreAConvertir);
  10. for($i=0; $i<count($tableauTemporaire); $i++)
  11. {
  12.  for($j=0; $j<strlen($tableauTemporair[$i]); $j++)
  13.  {
  14.   switch($j)
  15.   {
  16.    case strlen($tableauTemporaire[$i])-3:
  17.     if(substr($tableauTemporaire[$i], $j, 1) > 0)
  18.     {
  19.      if(substr($tableauTemporaire[$i], $j, 1) > 1)
  20.       echo $tableConversionEtapeUnOuTrois[substr($tableauTemporaire[$i], $j, 1)];
  21.      echo " cents ";
  22.     }
  23.     break;
  24.    case strlen($tableauTemporaire[$i])-2:
  25.     if(substr($tableauTemporaire[$i], $j, 1) > 1)
  26.      echo $tableConversionEtapeDeux[substr($tableauTemporaire[$i], $j, 1)];
  27.     if(substr($tableauTemporaire[$i], $j, 1) == 1 || substr($tableauTemporaire[$i], $j, 1) == 7 || substr($tableauTemporaire[$i], $j, 1) == 9)
  28.      if(substr($tableauTemporaire[$i], $j+1, 1) > 6)
  29.       echo "-dix";
  30.     break;
  31.    case strlen($tableauTemporaire[$i])-1:
  32.     if(substr($tableauTemporaire[$i], $j, 1) == 1)
  33.      echo " et ";
  34.     if(substr($tableauTemporaire[$i], $j-1, 1) == 1 ||substr($tableauTemporaire[$i], $j-1, 1) == 7 || substr($tableauTemporaire[$i], $j-1, 1) == 9)
  35.      if(substr($tableauTemporaire[$i], $j, 1) < 7)
  36.       echo "-".$tableConversionDeLaDizaineQuiFaitChier[substr($tableauTemporaire[$i], $j, 1)];
  37.      else
  38.       echo "-".$tableConversionEtapeUnOuTrois[substr($tableauTemporaire[$i], $j, 1)];
  39.     else
  40.      echo "-".$tableConversionEtapeUnOuTrois[substr($tableauTemporaire[$i], $j, 1)];
  41.     break;
  42.   }
  43.  }
  44.  echo " ".$tablePuissancesDeDix[count($tableauTemporaire)-$i-1]." ";
  45. }
  46. }
  47. convertitNombreEnLettres(124036977);
  48. ?>


---------------
Recherche Programmeur Php/MySql ! MP !
Reply

Marsh Posté le 15-01-2007 à 22:59:48   

Reply

Marsh Posté le 15-01-2007 à 23:11:37    

Ligne 13...

Reply

Marsh Posté le 15-01-2007 à 23:16:12    

Oups !!! Merci beaucoup, shui étourdi :s merci :)

Reply

Marsh Posté le 15-01-2007 à 23:17:01    

for($j=0; $j<strlen($tableauTemporaire[$i]); $j++)

Reply

Marsh Posté le 15-01-2007 à 23:20:08    

Mets ton error_reporting sur E_ALL (tant qu'à faire E_ALL | E_STRICT) dans php.ini et t'auras un joli warning ("Notice" plutôt) sur ce genre d'erreurs d'étourderies (je me suis pas amusé à scruter chaque ligne heureusement).
 
Si t'as pas accès à php.ini, voir error_reporting.

Reply

Marsh Posté le 16-01-2007 à 07:25:21    

okè dac' !

Reply

Sujets relatifs:

Leave a Replay

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