bonjour,
sur ce forum on m'a conseillé d'utiliser la fonction ci-dessous pour formater mon nombre :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
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;
}
return val_format;
} |
cela fonctionne bien,
sauf quand je rentre un nombre très grand tel que :j'obtiens:
1234567890 123 456 700,00
je ne comprends pas trop pourquoi, il fais la conversion jusqu'au 10ème caractère environ
Partager