formatage d'un nombre décimal
bonjour,
sur ce forum on m'a conseillé d'utiliser la fonction ci-dessous pour formater mon nombre :
Code:
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 :
Code:
1234567890123456789
j'obtiens:
Code:
1234567890 123 456 700,00
je ne comprends pas trop pourquoi, il fais la conversion jusqu'au 10ème caractère environ
formatage d'un nombre décimal
ce n'est donc pas possible pour moi d'avoir un nombre sans e+,
n'étant limité sur 15 caractères, puis le forcer à garder ma chaine ?
formatage d'un nombre décimal
bonjour, je ne suis pas un crack en javascript et j'avoue que j'ai pas trop saisi ton dernier message !