Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 027 fois - Téléchargée 14 fois
<?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); ?>
3 oct. 2014 à 21:53
Modifié par jordane45 le 16/09/2014 à 00:25
Tous ces IF ELSE IF.... ça pique un peu les yeux.
Quelques switch seraient les bienvenus.
Tu devrais jeter un oeil à cette source (à mon avis un peu plus complète)
http://codes-sources.commentcamarche.net/source/43095-convertir-un-chiffre-en-lettre-php
Modifié par Whismeril le 15/09/2014 à 21:53
Voir ici comment bien utiliser la coloration syntaxique.
Un petit texte expliquant à quoi le code sert et comment il marche serait le bienvenu surtout qu'il n'y a quasiment aucun commentaire.
Le partage de code a d'abord et avant tout un but pédagogique et jeter en pâture le snippet ne l'est pas.
Au fait les chiffres vont de 0 à 9 et sont les briques unitaires pour construire un nombre, comme la lettre pour le mot.
Ton code travaille donc sur des nombres et non des chiffres, même quand tu comptes 2 patates, il s'agit du nombre 2, écrit avec le chiffre 2.
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.