Javascript Arrondi à 2 chiffres après la virgule [Résolu/Fermé]

Signaler
-
 gravityaerox -
Bonjour,

je cherche une fonction javascript qui permettrait d'arrondir un nombre à deux chiffres après la virgule (un peu comme number_format du php), car la fonction round() ne permet d'arrondir qu'à l'unité!

Merci
Ciao

Jérémy
Configuration: Windows Vista
Firefox 2.0.0.14

3 réponses

La réponce est tardive mais elle pouras servir a quelques uns :

Ils n'éxiste pas de méthode toute faite pour ça aussi tu doit faire

Math.round(ton_chiffre*100)/100;


Sinon tu peut utiliser la class Number et faire

var ton_chiffre = 12.3455633; // Ta variable de chiffre
ton_chiffre.toFixed(2); //r'enveras 12.35..


Voila pour tous ceux qui cherchent encore ^^
71
Merci

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez Comment Ça Marche

CCM 60511 internautes nous ont dit merci ce mois-ci


Merciiiiiiiiii
Simple et efficace
Désolé de déterrer un sujet si vieux, mais aucune de ses deux possibilités ne fonctionnent. J'obtient toujours des chiffres du type : "324.70000000000005".
function total_price(){
  function total_price(){
   var prix = 0;
   $.each($(".price"), function() {
    prix += (Math.round($( this ).val()*100)/100);
   });
   $("#total_price").text(prix + " €");
  }
   
  jQuery(document).ready(function(){
    total_price();
  });
  
  $( document ).on( "change", "section",function() {
    total_price();
  });
  
  $( document ).on( "change", "input",function() {
    $("[name="+$(this).attr('id')+"]").text($(this).val());
    $("#price [name="+$(this).attr('id')+"]").text(Math.round(($(this).val()*.85)*100)/100);
  });
essaye ton_chiffre.toFixed(nbre apres la virgule) par ex 19.597.toFixed(2) =>"19.60"
Messages postés
1
Date d'inscription
mercredi 4 janvier 2017
Statut
Membre
Dernière intervention
4 janvier 2017
1
Le pb c'est que toFixed ne formate pas créé un arrondi donc 12,1 devient 12,1 au lieu de 12,10 dans le cas de la monnaie.

 function nombreFormate(sNombre, decimales, signe, separateurMilliers) {
    var _sNombre = String(this),
    i, _sRetour = "",
    _sDecimales = "";
    if (decimales == undefined) decimales = 2;
    if (signe == undefined) signe = '.';
    if (separateurMilliers == undefined) separateurMilliers = ' ';

    function separeMilliers(sNombre) {
        var sRetour = "";
        while (sNombre.length % 3 != 0) {
            sNombre = "0" + sNombre;
        // console.log(sNombre)
        }
        for (i = 0; i < sNombre.length; i += 3) {
            if (i == sNombre.length - 1) separateurMilliers = '';
            sRetour += sNombre.substr(i, 3) + separateurMilliers;
        //  console.log(sRetour);
        }
        while (sRetour.substr(0, 1) == "0") {
            sRetour = sRetour.substr(1);
        //  console.log(sRetour);
        }
        //  console.log(sRetour.substr(0, sRetour.lastIndexOf(separateurMilliers)))
        return sRetour.substr(0, sRetour.lastIndexOf(separateurMilliers));
    }
    // console.log(sNombre);
    if (sNombre.indexOf('.') == -1) {
        //_sDecimales="";
        for (i = 0; i < decimales; i++) {
            //     console.log(_sDecimales);
            _sDecimales += "0";
        }
        _sRetour = separeMilliers(sNombre) + signe + _sDecimales;
    // console.log(_sRetour);
    } else {
        var sDecimalesTmp = (sNombre.substr(sNombre.indexOf('.') + 1));
        if (sDecimalesTmp.length > decimales) {
            var nDecimalesManquantes = sDecimalesTmp.length - decimales;
            var nDiv = 1;
            for (i = 0; i < nDecimalesManquantes; i++) {
                nDiv *= 10;
            }
            _sDecimales = Math.round(Number(sDecimalesTmp) / nDiv);
        } else {
            _sDecimales = sDecimalesTmp;
            for (i = sDecimalesTmp.length; i < decimales; i++) {
                _sDecimales += "0";
            }
        }
        _sRetour = separeMilliers(sNombre.substr(0, sNombre.indexOf('.'))) + String(signe) + _sDecimales;
    }
    return _sRetour;
}

$nombre=nombreFormate("18000.1",2, ',', ' '); // 18 000,10