2011-08-12 2 views
1

Ceci est ma valeur entièrecomment obtenir formaté valeur entière en javascript

12232445 

et je dois obtenir comme ça.

12,232,445 

En utilisant un prototype comment l'obtenir?

+0

Que voulez-vous voulez atteindre avec cela. Je suppose que vous voulez formater le nombre en fonction de certaines règles de formatage locales? –

+0

oui .. j'ai besoin d'une valeur entière formatée – Dhiensh

+0

Ok, mais * dans quel but exactement et dans quel environnement? Il existe des bibliothèques prêtes à l'emploi pour la localisation. Cela n'a aucun sens de créer une fonction spécifique pour cette locale spécifique. Que se passe-t-il si votre application est portée vers d'autres paramètres régionaux à l'avenir? –

Répondre

0
var number = 12232445, 
    value = number.toString(), 
    parts = new Array; 

while (value.length) { 
    parts.unshift(value.substr(-3)); 
    value = value.substr(0, value.length - 3); 
} 

number = parts.join(','); 
alert(number); // 12,232,445 
0

Il pourrait ne pas être la solution la plus propre, mais ça va le faire:

function addCommas(n) 
{ 
    var str = String(n); 
    var result = ''; 

    for(var i = 0; i < str.length; i++) 
    { 
     if((i - str.length) % 3 == 0) 
      result += ','; 
     result += str[i]; 
    } 
    return result; 
} 
+0

pour I/P '345' il est retourné', 345' – Dhiensh

0

Voici la fonction que j'utilise, pour mettre en forme des milliers de séparateurs et prend en décimaux compte le cas échéant:

function thousands(s) { 
    var rx = /(-?\d+)(\d{3})/, 

    intDec = (''+s) 
     .replace(new RegExp('\\' + $b.localisation.thousandSeparator,'g'), '') 
     .split('\\' + $b.user.localisation.decimalFormat), 

    intPart = intDec[0], 
    decPart = intDec[1] || ''; 

    while (rx.test(intPart)) { 
    intPart = intPart.replace(rx,'$1'+$b.localisation.thousandSeparator+'$2'); 
    } 
    return intPart + (decPart && $b.localisation.decimalFormat) + decPart; 
} 

thousands(1234.56) //--> 1,234.56

$b.localisation est une variable globale u sed pour la session.

$b.localisation.thousands peut avoir les valeurs , ou . ou un espace.
Et $b.localisation.decimalFormat peut avoir les valeurs , ou . selon les paramètres régionaux de l'utilisateur

Questions connexes