Formater un chiffre

najkaj Messages postés 12 Statut Membre -  
najkaj Messages postés 12 Statut Membre -
Bonjour, j'aimerais formater un chiffre (par exemple 123456789321) au format suivant 123 456 789 321
si j'ai un chiffre du type 12 ou 123456 le script devrait également le reconnaitre.
je sais qu'il faut utiliser les expressions regulières mais je ne suis pas un caïd en la matière.
si quelqu'un peut m'aider....merci

6 réponses

Utilisateur anonyme
 
euh... quel langage?

kinder.surprise,
le maton du matou
0
Utilisateur anonyme
 
Salut,
Tu parles d'expressions régulieres, je suppose que c'est du php...
Va voir ici: http://www.php.net/manual/fr/function.ereg.php

Kalamit,
La nuit, tous les chats sont gris. Pas les poulets ! :@)
0
najkaj Messages postés 12 Statut Membre
 
c'est bien en php...je vais voir l'adresse que tu m'as donné.
merci
0
najkaj Messages postés 12 Statut Membre
 
Bin c cool :)
ça m'a permis de faire ça et ça répond à ma question !
si jamais vous avez plus simple, dites moi !

function Ch_tab($montant)
{

// pattern 123 456 789 321 ou 12 345 678 321 ou 1 234 567 321
if ( ereg( "([0-9]{3})([0-9]{3})([0-9]{3})([0-9]{3})", $montant, $newmontant ) or ereg( "([0-9]{2})([0-9]{3})([0-9]{3})([0-9]{3})", $montant, $newmontant ) or ereg( "([0-9]{1})([0-9]{3})([0-9]{3})([0-9]{3})", $montant, $newmontant ))
{ $new_montant = "$newmontant[1].$newmontant[2].$newmontant[3].$newmontant[4]"; }

// pattern 123 456 789 ou 12 345 678 ou 1 234 567
elseif ( ereg( "([0-9]{3})([0-9]{3})([0-9]{3})", $montant, $newmontant ) or ereg( "([0-9]{2})([0-9]{3})([0-9]{3})", $montant, $newmontant ) or ereg( "([0-9]{1})([0-9]{3})([0-9]{3})", $montant, $newmontant))
{ $new_montant = "$newmontant[1].$newmontant[2].$newmontant[3]"; }

// pattern 123 456 ou 12 345 ou 1 234
elseif ( ereg( "([0-9]{3})([0-9]{3})", $montant, $newmontant ) or ereg( "([0-9]{2})([0-9]{3})", $montant, $newmontant ) or ereg( "([0-9]{1})([0-9]{3})", $montant, $newmontant ))
{ $new_montant = "$newmontant[1].$newmontant[2]"; }

// pattern 123 ou 12 ou 1
elseif ( ereg( "([0-9]{3})", $montant, $newmontant ) or ereg( "([0-9]{2})", $montant, $newmontant ) or ereg( "([0-9]{1})", $montant, $newmontant ))
{ $new_montant = "$newmontant[1]"; }

return $new_montant;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
ouh là!

number_format() est ton ami!

$toc=12345678912345;
echo number_format($toc, 2, ",", " ");

//sortie: 12 345 678 912 345,00

le premier argument, c'est le nombre
le second, c'est la précision derrière la virgule
le troisième, c'est le séparateur décimal
le quatrième, c'est le séparateur de milliers

$toc=12345678.912345;
echo number_format($toc, 0, ".", "-");

//sortie: 12-345-679

pour ton cas, tout simplement:

$toc=12345678; /*par exemple, ça peut être 12 ou 121212 ou 12121212*/
echo number_format($toc, 0, ".", " ");

//sortie: 12 245 678

c'est pas plus compliqué, ça tient en une ligne pour tous tes cas de figure que tu as cités, t'as juste à préciser un séparateur de milliers (-:

kinder.surprise,
le maton du matou
0
najkaj Messages postés 12 Statut Membre
 
Effectivement, c'est pas plus compliqué :D
C'est même mille fois plus simple.
Génial !
Merci beaucoup.

L'expérience est une lanterne qui n'éclaire que le chemin parcouru.
Confucius
0