begin process at 2010 03 21 03:35:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Nombre En Lettres - Probleme avec 88 ! -


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Nombre En Lettres - Probleme avec 88 ! -

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

marc660

Membre Club
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

Membre Club
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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,856 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales