Pb d'arrondi en javascript
Résolu
Sabi
-
ZemilZed -
ZemilZed -
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.
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.
A voir également:
- Arrondir js
- Excel arrondir au 0.5 supérieur ✓ - Forum Excel
- Arrondir tracé illustrator - Forum Illustrator
- Javascript arrondir à 2 décimales ✓ - Forum Javascript
- Excel arrondir à 0.5 sup ou inf - Forum Excel
- Copiez l'image dans un logiciel d'édition d'images ou un outil en ligne comme js paint ou pixlr e. remplissez les cases en suivant le code couleur. des cases supplémentaires vont se remplir automatiquement. que représente le dessin ? ✓ - Forum Windows
3 réponses
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 =-
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 =-
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
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
/*------------ 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