77 votes

Formatage des nombres en JavaScript comme en C#

Existe-t-il un moyen simple de formater des nombres en JavaScript, similaire aux méthodes de formatage disponibles en C# (ou VB.NET) via ToString("format_provider") ou String.Format() ?

0 votes

Vous devriez probablement jeter un coup d'œil au plugin JQuery NUMBERFORMATTER : Formateur de nombres Jquery Et cette question : Une façon plus simple de formater les chiffres en Javascript

1 votes

@Darhuuk, et 32,6 millions d'entre eux sont terribles...

1 votes

76voto

rahul Points 84185

Généralement

Dans jQuery

11 votes

Un mot d'avertissement : Le formateur de nombres jQuery dont vous avez le lien (j'ai essayé avec la version 1.1.0) est complètement cassé et inutile. Comme dans : Il ne fonctionne pas du tout . Voici un plugin de formatage décent : asual.com/jquery/format

0 votes

@Tomalak, Vous devriez poster cela comme une réponse. C'est certainement le meilleur plugin de formatage de nombres que j'ai utilisé. J'aimerais qu'il y ait une documentation en dehors des tests unitaires.

0 votes

@Brad C'est un peu tard. Mais je suis heureux d'entendre que vous l'avez trouvé utile !

49voto

Vishal Barot Points 309

Oui, il existe bien un moyen de formater correctement les chiffres en javascript, par exemple :

var val=2489.8237

val.toFixed(3) //returns 2489.824 (round up)
val.toFixed(2) //returns 2489.82
val.toFixed(7) //returns 2489.8237000 (padding)

Avec l'utilisation de variablename. toFixed .

Et il y a une autre fonction toPrecision() . Pour plus de détails, vous pouvez également visiter

http://raovishal.blogspot.com/2012/01/number-format-in-javascript.html

25voto

jfriend00 Points 152127

Voici une fonction JS simple pour ajouter des virgules à un nombre entier au format chaîne. Elle gère les nombres entiers ou décimaux. Vous pouvez lui passer soit un nombre, soit une chaîne. Elle renvoie évidemment une chaîne de caractères.

function addCommas(str) {
    var parts = (str + "").split("."),
        main = parts[0],
        len = main.length,
        output = "",
        first = main.charAt(0),
        i;

    if (first === '-') {
        main = main.slice(1);
        len = main.length;    
    } else {
        first = "";
    }
    i = len - 1;
    while(i >= 0) {
        output = main.charAt(i) + output;
        if ((len - i) % 3 === 0 && i > 0) {
            output = "," + output;
        }
        --i;
    }
    // put sign back
    output = first + output;
    // put decimal part back
    if (parts.length > 1) {
        output += "." + parts[1];
    }
    return output;
}

Voici un ensemble de cas de test : http://jsfiddle.net/jfriend00/6y57j/

Vous pouvez le voir utilisé dans ce jsFiddle précédent : http://jsfiddle.net/jfriend00/sMnjT/ . Vous pouvez également trouver des fonctions qui gèrent les nombres décimaux en effectuant une simple recherche Google sur "javascript add commas".

La conversion d'un nombre en chaîne de caractères peut se faire de plusieurs façons. La plus simple consiste à l'ajouter à une chaîne de caractères :

var myNumber = 3;
var myStr = "" + myNumber;   // "3"

Dans le contexte de votre jsFiddle, vous obtiendrez des virgules dans le compteur en modifiant cette ligne :

jTarget.text(current);

à ça :

jTarget.text(addCommas(current));

Vous pouvez le voir fonctionner ici : http://jsfiddle.net/jfriend00/CbjSX/

0 votes

@blackessej - J'ai ajouté plus à la fin de ma réponse qui montre comment addCommas peut être ajouté à votre fiddle.

0 votes

Ajout de la prise en charge des nombres décimaux dans le addCommas() afin qu'elle fonctionne pour les nombres avec une partie décimale.

0 votes

Ce n'est pas le cas pour les nombres négatifs) :

9voto

karim79 Points 178055

Vous devriez probablement jeter un coup d'œil au plugin jQuery NUMBERFORMATTER :

http://plugins.jquery.com/project/numberformatter

Et cette question :

http://stackoverflow.com/questions/726144/javascript-easier-way-to-format-numbers/

7voto

adamwdraper Points 129

Si vous ne voulez pas utiliser jQuery, jetez un coup d'oeil à Numeral.js

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X