Pb d'arrondi en javascript

Résolu
Bonjour,

Je souhaiterai arrondir le résultat d'un calcul à 2 chiffres après la virgule. Existe-il une fonction javascript qui effectue cette opération?
Sinon, comment puis-je faire cela?

Merci d'avance.

3 réponses

  1. Voici une excellente reponse du forum ALL HTML posté par alakazoo_:

    Entre <BODY> et </BODY> :
    <SCRIPT LANGUAGE=JavaScript>
    monchiffre = -75.1598756421;
    /* Le chiffre */
    document.write('Mon chiffre : '+monchiffre+'<BR>');
    /* arrondir */
    document.write('Mon chiffre arrondi : '+ Math.round(monchiffre)+'<BR>');
    /* valeur absolue */
    document.write('Valeur absolue de mon chiffre : '+ Math.abs(monchiffre)+'<BR>');
    /* arrondir a l'entier superieur */
    document.write('Mon chiffre arrondi à l\'entier superieur : ' + Math.ceil(monchiffre)+'<BR>');
    /* arrondir a l'entier inferieur */
    document.write('Mon chiffre arrondi à l\'entier inferieur : ' + Math.floor(monchiffre)+'<BR>');
    /* arrondir a deux chiffres apres la virgule, facon bidouille ;) */
    document.write('Mon chiffre arrondi à deux chiffres : ' + (Math.round(monchiffre*100))/100+'<BR>');

    </SCRIPT>

    Exemple:
    Mon chiffre : -75.1598756421
    Mon chiffre arrondi : -75
    Valeur absolue de mon chiffre : 75.1598756421
    Mon chiffre arrondi à l'entier superieur : -75
    Mon chiffre arrondi à l'entier inferieur : -76
    Mon chiffre arrondi à deux chiffres : -75.16

    -------------------------------------
    alakazoo_
    -------------------------------------

    -= Bobinours =-
    10
    1. La methode la plus simple est d'utiliser toPrecision(n) avec n le nombre de chiffre significatif ou toFixed(n) avec n le nombre de chiffre significatif
      1
      1. Une methode JavaScript équivalente à number_format de PHP :

        /*------------ Script by ZemilZed --------------*/

        // NUMBER_FORMAT EN JAVASCRIPT------------------------------------------------------
        Number.prototype.number_format = function() { // la déclaration des variables correspond à l'ordre des arguments
        var nbDecimales = 2, sepDecimales = '.', carSepMilliers = ','; // les valeurs par défaut des arguments
        var nbArgs = arguments.length; // le nombre d'arguments
        if (isNaN(this) || !(new RegExp('0|1|3', 'g').test(nbArgs))) return false; // si la valeur recue n'est pas numérique ou que je n'ai pas un nombre cohérent d'arguments
        switch (nbArgs) { // selon le nombre d'arguments
        case 3: sepDecimales = arguments[1]; carSepMilliers = arguments[2]; // 3 = séparateur milliers, 2 = sép décimale,
        case 1: nbDecimales = parseInt(arguments[0]); // 1 = nb décimale
        }
        var puiss = Math.pow(10, nbDecimales); // puiss sert au calcul d'exposant pour l'arrondi à nbDecimales après sepDecimales
        var intNb = parseInt(this), intStr = intNb.toString(), n = intStr.length; // intNb = valeur entière, intStr = valeur entière format texte, n = le nombre de caractère de la valeur entière
        if (!isNaN(this) && this == 0) return this + (nbDecimales ? sepDecimales + this.toFixed(nbDecimales).substr(2) : ''); // si la valeur recue est nulle
        return ((n % 3 && n > 3) ? intStr.substr(0, n % 3) + carSepMilliers : ( n < 6 ) ? intStr : '') // sortie de la méthode : moins de 1000, puis découper la chaine en paquets de trois caractères,
        + ((n > 3) ? intStr.substr(n % 3).match(new RegExp('[0-9]{3}', 'g')).join(carSepMilliers) : '') // les milliers et le séparateur des milliers
        + (nbDecimales ? sepDecimales + (((Math.round(this*puiss)/puiss).toFixed(nbDecimales)).toString()).substring(n+1) : ''); // le séparateur et les décimales.
        } // fin de méthode !!!

        // DECLINAISON DE LA METHODE DE CONVERTION DE FORMAT NUMERIQUE----------------------
        Number.prototype.nbFormatFrancais = function() { // afficher une valeur en format français
        return this.number_format(arguments[0] ? arguments[0] : 2, ',', ' ');
        } // fin de sous méthode
        Number.prototype.nbEnglishFormat = function() { // afficher une valeur en format anglais
        return this.number_format(arguments[0] ? arguments[0] : 2, '.', ',');
        } // fin de sous méthode
        Number.prototype.nbFormatCalc = function() { // afficher une valeur en format calculatrice
        return this.number_format(arguments[0] ? arguments[0] : 2, '.', '\'');
        } // fin de sous méthode
        1