Conversion d'un montant en format alphabétique

Contenu du snippet

<?php
    // retourne sous format alphabétique un chiffre de 1 à 100 (la correspondance du chiffre 1 n'est pas affichée)
    function unite($u){
  $str="";
  if ($u==1)$str="";if ($u==2)$str="deux";if ($u==3)$str="trois";if ($u==4)$str="quatre";if ($u==5)$str="cinq";
  if ($u==6)$str="six";if ($u==7)$str="sept";if ($u==8)$str="huit";if ($u==9)$str="neuf";if ($u==10)$str="dix";if ($u==11)$str="onze";
  if ($u==12)$str="douze";if ($u==13)$str="treize";if ($u==14)$str="quatorze";if ($u==15)$str="quinze";if ($u==16)$str="seize";if ($u==17)$str="dix-sept";
  if ($u==18)$str="dix-huit";if ($u==19)$str="dix-neuf";
  if ($u>=20 && $u<30){$str="vingt";if ($u-20==1) $str="vingt-et-un";elseif($u!=20) $str="vingt-".unite($u-20);}
  if ($u>=30 && $u<40){$str="trente";if ($u-30==1) $str="trente-et-un";elseif($u!=30) $str="trente-".unite($u-30);}
  if ($u>=40 && $u<50){$str="quarante";if ($u-40==1) $str="quarante-et-un";elseif($u!=40) $str="quarante-".unite($u-40);}
  if ($u>=50 && $u<60){$str="cinquante";if ($u-50==1) $str="cinquante-et-un";elseif($u!=50) $str="cinquante-".unite($u-50);}
  if ($u>=60 && $u<70){$str="soixante";if ($u-60==1) $str="soixante-et-un";elseif($u!=60) $str="soixante-".unite($u-60);}
  if ($u>=70 && $u<80){$str="soixante-dix";if ($u-70==1) $str="soixante-onze";elseif($u!=70) $str="soixante-".unite($u-70+10);}
  if ($u>=80 && $u<90){$str="quatre-vingt";if ($u-80==1) $str="quatre-vingt-et-un";elseif($u!=80) $str="quatre-vingt-".unite($u-80);}
  if ($u>=90 && $u<100){$str="quatre-vingt-dix";if ($u-90==1) $str="quatre-vingt-onze";elseif($u!=90) $str="quatre-vingt-".unite($u-90+10);}
  if ($u==100)$str="cent";
  return $str;
 }
    // retourne sous format alphabétique un chiffre de 0 à 999 999 999
    function montant_en_chiffre($val){
   $million = 0;
   $millier = 0;
   $centaine = 0;
   $dizaine = 0;
   $str = "";
   if ($val==1) $str = "un";
   if ($val==0) $str = "zéro";
   if ($val>=1000000){
    $nb_million = (int)($val/1000000);
    if ($nb_million!=0) $str .= montant_en_chiffre($nb_million)." million";
    $str.=" ".montant_en_chiffre($val-($nb_million*1000000));
    $val=0;
   }
   if ($val>=1000){
    $millier = (int)($val/1000);
    $centaine = (int)(($val - ($millier*1000))/100);
    $dizaine = $val-(($millier*1000)+($centaine*100));
   }
   if ($val<1000 && $val>=100){
    $centaine = (int)($val/100);
    $dizaine = (int)($val - ($centaine*100));
   }
   if ($val<1000 && $val<100){
    $dizaine = $val;
   }
   if ($millier!=0){
    if ($millier<=100){
     $str .=unite($millier)." mille ";
    }
    else{
     $cent= (int)($millier/100);
     $dix=$millier-$cent*100;
     $str .= unite($cent)." cent ".unite($dix)." mille ";
    } 
   }
   if ($centaine!=0){
     $str.=unite($centaine)." cent";
   }
   if ($dizaine!=0){
     $str.=" ".unite($dizaine);
     if ($dizaine==1) $str.=" un";
   }
   return $str;
 }
 
 // Test des fonctions
 echo montant_en_chiffre(32750);
 
?>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.