Solde avec séparateur de milliers et 2 chiffres après la virgule [PHP] - PHP - Programmation
Marsh Posté le 30-07-2007 à 16:06:43
ReplyMarsh Posté le 30-07-2007 à 16:09:04
| naceroth a écrit : Pourquoi ne pas utiliser number_format qui est un peu là pour ça ? | 
 
je ne connais, pas, je vais me renseigner là-dessus  
 
 
 
edit: ça marche nickel !! ![[:spikler] [:spikler]](https://forum-images.hardware.fr/images/perso/spikler.gif) 
  
$solde=number_format($solde , 2 , "," , " " ); 
Marsh Posté le 30-07-2007 à 16:44:43
| naceroth a écrit : Pourquoi ne pas utiliser number_format qui est un peu là pour ça ? | 
 
Pourquoi ne pas utiliser money_format qui est un peu là pour ça ?
Marsh Posté le 30-07-2007 à 17:15:35
| anapajari a écrit :   | 
 
 
parce que j'évite des réponses dépendant de l'OS sur lequel tourne le serveur. Et au dernière nouvelle, money_format ne fonctionne pas sous windows   
  
Marsh Posté le 30-07-2007 à 17:27:25
| naceroth a écrit : parce que j'évite des réponses dépendant de l'OS sur lequel tourne le serveur. Et au dernière nouvelle, money_format ne fonctionne pas sous windows   | 
 
c'est pas "aux dernières nouvelles" mais pour longtemps vu que money_format se base strfmon... 
Mais si c'est utilisable, je trouve ça mieux que number_format  
 
 
Marsh Posté le 08-08-2007 à 14:14:38
Je reviens à la charge... 
est-ce que vous connaissez un équivalent de number_format en javascript ? (le séparateur de milliers n'est pas indispensable) 
 
merci 
Marsh Posté le 09-08-2007 à 12:58:09
function format(valeur,decimal,separateur) { 
// formate un chiffre avec 'decimal' chiffres après la virgule et un separateur 
 var deci=Math.round( Math.pow(10,decimal)*(Math.abs(valeur)-Math.floor(Math.abs(valeur)))) ;  
 var val=Math.floor(Math.abs(valeur)); 
 if ((decimal==0)||(deci==Math.pow(10,decimal))) {val=Math.floor(Math.abs(valeur)); deci=0;} 
 var val_format=val+""; 
 var nb=val_format.length; 
 for (var i=1;i<4;i++) { 
 	if (val>=Math.pow(10,(3*i))) { 
   val_format=val_format.substring(0,nb-(3*i))+separateur+val_format.substring(nb-(3*i)); 
 	} 
 } 
 if (decimal>0) { 
 	var decim="";  
 	for (var j=0;j<(decimal-deci.toString().length);j++) {decim+="0";} 
 	deci=decim+deci.toString(); 
 	val_format=val_format+"."+deci; 
 } 
 if (parseFloat(valeur)<0) {val_format="-"+val_format;} 
 return val_format; 
} 
 
function afficher() { 
 var val=document.forms[0].elements["chiffre"].value; 
 var deci=document.forms[0].elements["decimal"].value; 
 document.forms[0].elements["resultat"].value=format(val,deci,document.forms[0].elements["liste"].options[document.forms[0].elements["liste"].selectedIndex].value); 
}
Marsh Posté le 09-08-2007 à 13:50:53
| antac a écrit : function format(valeur,decimal,separateur) {  | 
 
Wow ! merci  
  
je vais regarder ça de plus près ![[:bob la jungle] [:bob la jungle]](https://forum-images.hardware.fr/images/perso/bob la jungle.gif) 
 
Marsh Posté le 02-10-2007 à 10:52:48
Bonjour 
 
pour info  
 
y a un bug dans cette fonction.....si la valeur est : 0.999999999 et ben la fonction retroune 0.00 ... c'est bete.... 
 
voila
Marsh Posté le 02-10-2007 à 12:00:52
oui alors bon ... y'a une methode de la class Number qui fait ça très bien ( dans la mesure ou tu n'as pas besoin du séparateur des milliers). 
| Code : 
 | 
 
 
 
Marsh Posté le 23-10-2007 à 16:00:51
| anapajari a écrit : oui alors bon ... y'a une methode de la class Number qui fait ça très bien ( dans la mesure ou tu n'as pas besoin du séparateur des milliers).  
   | 
 
ah oui, tiens, ça marche aussi  
 
Marsh Posté le 30-07-2007 à 15:48:42
Salut !!
 
 
 
 
J'essaie de mettre des séparateurs de milliers sur mes valeurs monétaires.
J'utilise d'habitude sprintf pour mettre en forme les nombres, mais pour faire ça, je ne suis pas sûr que ce soit possible
Jusque là (donc sans le séparateur de milliers) j'utilise cette méthode :
$solde = sprintf("%1.2f",$solde);
Est-ce que qqun saurait ?
---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron