Accueil > Forum > > > > Nombre En Lettres - Probleme avec 88 ! -
Nombre En Lettres - Probleme avec 88 ! -
mercredi 4 juillet 2007 à 21:18:45 |
Nombre En Lettres - Probleme avec 88 ! -

marc660
|
Bonjour,
J'ai un problème au niveau des chiffre 88 tous marche bien sauf quand il y a 88
Pouvez vous m'aidez SVP
<?php function sommeEnLettres($nombre,$devise) { //On cr?e un tableau avec les unit?s $unitesExp3 = array( 0 => 'euro', 3 => 'mille', 6 => 'million', 9 => 'milliard', 12 => 'billion', 15 => 'billiard', 18 => 'trillion', 21 => 'trilliard', 24 => 'quatrillion', 27 => 'quatrilliard', 30 => 'quintillion', 33 => 'quintilliard', 36 => 'sextillion', 39 => 'sextilliard', ); if($devise == "USD") $unitesExp3[0] = "dollar"; if($devise == "EUR") $sousUnite = "centime"; elseif($devise == "USD") $sousUnite = "cent"; //On cr?e un tableau avec les 99 (100 avec zero) premiers nombres $nombres_99 = array("z?ro","un","deux","trois","quatre","cinq","six","sept","huit","neuf","dix","onze","douze","treize","quatorze","quinze","seize","dix-sept","dix-huit","dix-neuf","vingt"); $nombres_99[30] = "trente"; $nombres_99[40] = "quarante"; $nombres_99[50] = "cinquante"; $nombres_99[60] = "soixante"; $nombres_99[70] = "soixante-dix"; $nombres_99[71] = "soixante et onze"; $nombres_99[80] = "quatre-vingt"; for ($i=21;$i<=61;$i+=10) { $nombres_99[$i] = $nombres_99[$i - 1]." et un"; for ($j=1;$j<=8;$j++) { $k = $i + $j; $nombres_99[$k] = $nombres_99[$i - 1]."-".$nombres_99[$j + 1]; } } for ($i=72;$i<=79;$i++) { $nombres_99[$i] = "soixante-".$nombres_99[$i-60]; } for ($i=81;$i<=99;$i++) { $nombres_99[$i] = "quatre-vingt-".$nombres_99[$i-80]; $i++; } //On d?finit $r qui est le $nombre ?crit en lettres $r=""; //on recherche si ya une virgule $virg = strpos($nombre,",",1); //puis on cr?e un tableau avec la partie enti?re et la partie apr?s la virgule if ($virg == 0) { $partie[0] = $nombre; $partie[1] = "00"; } else { $partie = explode(",",$nombre); } //on regarde combien ya de chiffres dans chaque partie $nombreChiffres = strlen($partie[0]); //on fait en sorte qu'il y a un nombre de chiffres qui tombe sur un multiple de 3 pour les calculs if($nombreChiffres % 3 == 1) {$partie[0] = "00".$partie[0]; $nombreChiffres += 2;} elseif($nombreChiffres % 3 == 2) {$partie[0] = "0".$partie[0]; $nombreChiffres += 1;}
$i = $nombreChiffres; while ($i>0) { $centaines = substr($partie[0],$nombreChiffres-$i,1); $dizainesEtUnites = substr($partie[0],$nombreChiffres-$i+1,2); if (substr($partie[0],$nombreChiffres-$i+1,1)==0){ $dizainesEtUnites = substr($partie[0],$nombreChiffres-$i+2,1);}
if ($dizainesEtUnites==0 && $centaines > 1) { $r = $r.$nombres_99[$centaines]." cent"; if ($i != 6) $r = $r."s "; else $r = $r." "; } else { if ($centaines == 1) $r = $r."cent "; else { if ($centaines > 1) $r = $r.$nombres_99[$centaines]." cent "; } } if ($dizainesEtUnites == 80 && $i != 6) { $r = $r.$nombres_99[$dizainesEtUnites]."s ".$unitesExp3[$i-3]."s "; } elseif ($dizainesEtUnites > 1) { $r = $r.$nombres_99[$dizainesEtUnites]." ".$unitesExp3[$i-3]; if ($i != 6) $r = $r."s "; else $r = $r." "; } elseif($dizainesEtUnites == 1) { if ($centaines > 0) { $r = $r.$nombres_99[$dizainesEtUnites]." ".$unitesExp3[$i-3]; if ($i != 6) $r = $r."s "; else $r = $r." "; } elseif ($i == 3) { $r = $r.$nombres_99[$dizainesEtUnites]." ".$unitesExp3[$i-3]; if ($partie[0] > 1) $r = $r."s"; } else { $r = $r.$unitesExp3[$i-3]." "; } } elseif ($dizainesEtUnites == 0 && $centaines > 0) { $r = $r.$unitesExp3[$i-3]; if ($i != 6) $r = $r."s "; else $r = $r." "; } elseif ($i >= 6 && substr($partie[0],$nombreChiffres-$i,$i) == 0) { $r = $r."d'".$unitesExp3[0]."s"; break; } elseif ($nombreChiffres-$i == 3 && substr($partie[0],$nombreChiffres-$i,$i) == 0) { $r = $r.$unitesExp3[0]."s"; break; } $i -= 3; }
if ($partie[0] == 0) $r = $nombres_99[0]." ".$unitesExp3[0]; //on passe aux centimes $centimes = substr($partie[1],0,2); if (substr($partie[1],0,1)==0){ $centimes = substr($partie[1],1,1);} if ($centimes != 0) { $r = $r." et "; if ($centimes == 80) { $r = $r.$nombres_99[$centimes]."s ".$sousUnite."s"; } elseif ($centimes > 1) { $r = $r.$nombres_99[$centimes]." ".$sousUnite."s"; } elseif($centimes == 1) { $r = $r.$nombres_99[$centimes]." ".$sousUnite; } } //on supprime les espaces de d?but et de fin $r1 = trim($r); return($r); }
echo '__ICI C\'EST BON__ ' .$totalEnLettres = sommeEnLettres(number_format('8887.87', 10, ',', ''),EUR); ?> <br><br> <? echo '__MAIS LA PROBLEME AVEC 88__ ' .$totalEnLettres = sommeEnLettres(number_format('8888.88', 10, ',', ''),EUR); ?>
|
|
mercredi 4 juillet 2007 à 22:30:02 |
Re : Nombre En Lettres - Probleme avec 88 ! -

marc660
|
Réponse acceptée !
Bonjour, Je vous remercie mais c'est bon j'ai rsolu le probleme. Merci encore
|
|
mercredi 18 juillet 2007 à 09:50:52 |
Re : Nombre En Lettres - Probleme avec 88 ! -

vinz78
|
Le mieux sa serait de mettre comment....
|
|
mercredi 18 juillet 2007 à 10:09:18 |
Re : Nombre En Lettres - Probleme avec 88 ! -

arshycon
|
Bonjour je suis intéressé par la façon dont vous avez résolu ce problème car j'ai le même merci de me l'indiquer
|
|
Cette discussion est classée dans : nombres, partie, nombrechiffres, unitesexp3, dizainesetunites
Répondre à ce message
Sujets en rapport avec ce message
MySQL - Ordonner des nombres [ par psychodingue ]
Alors voilà mon prob:Je voudrai ordonner par ordre inverse des nombres, alors j'me connecte à ma base de donner puis je fait:ORDER BY clics DESCJe fou
Récupération d'une partie d'adresse email ? [ par Joez ]
je veux recupérer ce k'il y a avant l'@ dans une adresse email, en php, comment faire ?
Splitter un texte en nombres [ par JMGR ]
Je cherche à stocker les forum déja vus par les utilisateurs d'un forum que je crée, mais je ne désire pas utiliser le cookies qui sont je trouve, com
partie entire d'une fraction [ par overider ]
resalutje voudrais prendre la partie entiere d'un division merci
Refresh sur une partie de la page [ par fcdconnect ]
Bonjour,J'aimerai savoir si il est possible (en php ou javascript) de rafraichir uniquement un bout de code et pas la page entiere comme il est possib
Envoyer un mail au format HTML [ par predateur ]
Bonjour,Je cherche un script tout pret pour envoyer des mail au format HTML. Avec la partie html et la partie php.Merci d'avance
Intégration d'une partie de page Web ds une autre [ par jiroen ]
Helloje viens d'apprendre comment on intègre une page web dans une autre avec le PHP grâce à ce site:$filename= "http://www.yahoo.com"; //le site que
du MultiPlayer dans l'aire [ par Nestor ]
SalutJe voudrais me faire sous forme de tableau un listing d'adresse ip, du ping, date, heure.....pour mon site mais je sauré jamais faire cela en php
Nombres entier [ par ekinoks ]
he... escusé moi mais he .... comment on fait pour avoir que les nombres entier de nombres decimoexemple :$truk = 3/2;echo $truk; //g envi qeu ici il
2eme partie du tuto section membre [ par Gamer13 ]
je sais e suis pompe l'air la première partie du tuto g réussit c bon les donné sont stoké dans la bdmé maintenant c kan je veut me connecter ke sa vo
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|