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

A voir également:Javascript roundJs round - Meilleures réponses Round javascript - Meilleures réponses Javascript - Articles Concaténation javascript - Conseils pratiques - Javascript Javascript split - Conseils pratiques - Javascript Date javascript - Articles Javascript table - Articles

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

Forum

A voir également:Javascript roundJs round - Meilleures réponses Round javascript - Meilleures réponses Javascript - Articles Concaténation javascript - Conseils pratiques - Javascript Javascript split - Conseils pratiques - Javascript Date javascript - Articles Javascript table - Articles

Web: www.shapebootstrap.net

3 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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 ^^

Dire « Merci » 56

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60211 internautes nous ont dit merci ce mois-ci

Reply
réponses:
  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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);   }); 

Reply
réponses:
  • auteur

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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  

Reply

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed