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 !!
$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
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