Probleme pour faire afficher les nombre avec séparateur
bibosn
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
bibosn Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
bibosn Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai une application avec une fonction php d'affichage du nombre avec séparateur de milliers.
par exemple; si on met 1000 on obtient 1 000 et ça s'affiche normalement jusqu'à un chiffre sous le format par exemple 9 500 000. Par contre si on met un montant à supérieur à 10 000 000 donc sous le format XX XXX XXXX le montant ne s'affiche pas sur mon site.
Ci-après la fonction utilisé
public function formaterPrix($prix){
if ($prix == null || empty($prix) || !$prix || $prix <= 0) {
return "Néant";
}
else if($prix > 0 && $prix <= 999)
{
return $prix." F";
}
else if($prix > 999 && $prix <= 9999)
{
return substr($prix, 0, 1).".".substr($prix, 1)." F ";
}
else if($prix > 9999 && $prix <= 99999)
{
return substr($prix, 0, 2).".".substr($prix, 2)." F";
}
else if($prix > 99999 && $prix <= 999999)
{
return substr($prix, 0, 3).".".substr($prix, 3)." F ";
}
else if($prix > 999999 && $prix <= 9999999)
{
return substr($prix, 0, 1).".".substr($prix, 1, 3).".".substr($prix, 4)."F ";
}
Merci pour votre aide
j'ai une application avec une fonction php d'affichage du nombre avec séparateur de milliers.
par exemple; si on met 1000 on obtient 1 000 et ça s'affiche normalement jusqu'à un chiffre sous le format par exemple 9 500 000. Par contre si on met un montant à supérieur à 10 000 000 donc sous le format XX XXX XXXX le montant ne s'affiche pas sur mon site.
Ci-après la fonction utilisé
public function formaterPrix($prix){
if ($prix == null || empty($prix) || !$prix || $prix <= 0) {
return "Néant";
}
else if($prix > 0 && $prix <= 999)
{
return $prix." F";
}
else if($prix > 999 && $prix <= 9999)
{
return substr($prix, 0, 1).".".substr($prix, 1)." F ";
}
else if($prix > 9999 && $prix <= 99999)
{
return substr($prix, 0, 2).".".substr($prix, 2)." F";
}
else if($prix > 99999 && $prix <= 999999)
{
return substr($prix, 0, 3).".".substr($prix, 3)." F ";
}
else if($prix > 999999 && $prix <= 9999999)
{
return substr($prix, 0, 1).".".substr($prix, 1, 3).".".substr($prix, 4)."F ";
}
Merci pour votre aide
A voir également:
- Probleme pour faire afficher les nombre avec séparateur
- Excel afficher les 0 devant un nombre - Guide
- Afficher appdata - Guide
- Nombre de jours entre deux dates excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- Faites afficher avec un fond coloré les cellules qui contiennent une valeur comprise entre 250 et 350. quel nombre est dessiné en surbrillance ? - Forum VB / VBA
5 réponses
Et ba oui, ta fonction n'est pas appliquée tout le temps. En fait, il faut qqc de récursif, qui s'applique pour n'importe quel chiffre, et très court en plus :
Explications
1. On retourne le nombre, les unitées apparaissent donc à gauche (strrev)
2. Tout les 3 chiffres, on rajoute le séparateur (preg_replace)
3. On ré-inverse le nombre
Et là y a les séparations
function formaterPrix($prix){ $Séparateur="."; return strrev(preg_replace("#([0-9]{3})#","$1".$Séparateur,strrev("$prix"))); }
Explications
1. On retourne le nombre, les unitées apparaissent donc à gauche (strrev)
2. Tout les 3 chiffres, on rajoute le séparateur (preg_replace)
3. On ré-inverse le nombre
Et là y a les séparations
bonjour,
j'ai essayé de mettre votre solution mais tout ce qui s'afficher normalement est maintenant KO...par exemple si on met le montant 225000 on obtient à l'affichage .225.000 donc il y a un point(.) devant le chiffre alors que l'on devait avoir 225.000 merci de revoir votre formule afin que puisse obtenir:
-pour 1000 ------->1.000
pour 10000------->10.000
pour 100000------>100.000
pour 1000000------>1.000.000
pour 10000000------->10.000.000
pour 100000000------>100.000.00
Merci du feedback
j'ai essayé de mettre votre solution mais tout ce qui s'afficher normalement est maintenant KO...par exemple si on met le montant 225000 on obtient à l'affichage .225.000 donc il y a un point(.) devant le chiffre alors que l'on devait avoir 225.000 merci de revoir votre formule afin que puisse obtenir:
-pour 1000 ------->1.000
pour 10000------->10.000
pour 100000------>100.000
pour 1000000------>1.000.000
pour 10000000------->10.000.000
pour 100000000------>100.000.00
Merci du feedback
Evidemment, pardon, j'avais testé avec des espaces, donc impossible de le voir ! et bien voila :
function formaterPrix($prix){ $Separateur="."; return strrev(preg_replace("#([0-9]{3})([0-9])#","$1$Separateur$2",strrev("$prix"))); }
Il n'est pas interdit de modifier le code XD !
Tenez, donc la fonction déjà inclue dans PHP :
Tenez, donc la fonction déjà inclue dans PHP :
function formatPrix($Prix) $Separateur="."; return number_format($Prix,0,",",$Separateur); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cette dernière fonction ne fonctionne pas car il m'affiche 0 au niveau des prix alors qu'on renseigne bien un montant...pour précision c'est un site de vente en ligne et ce sont les internautes qui mettent prix de vente de la marchandise...la précédente fonction avait presque résolu le pb...il faudrait juste voir comment afficher 10.000.000 au lieu 1.0000.000
Merci encore une fois pour l'aide
Merci encore une fois pour l'aide