La fonction Math.round()
retourne la valeur d'un nombre arrondi à l'entier le plus proche.
Syntaxe
Math.round(x)
Paramètres
x
- Un nombre.
Valeur de retour
La valeur de l'entier le plus proche du nombre passé en argument.
Description
Si la partie décimale du nombre est de .5 ou plus, l'argument est arrondi à l'entier supérieur dont la valeur absolue est la plus grande. Sinon, il est arrondi à l'entier le plus proche dont la valeur absolue est la plus petite.
round()
étant une méthode statique de Math
, elle doit toujours être utilisée avec la syntaxe Math.round()
, elle ne doit pas être utilisée comme une méthode d'un objet qui aurait été créé (Math
n'est pas un constructeur).
Exemples
Utiliser Math.round()
// Retourne la valeur 20 x = Math.round(20.49); // Retourne la valeur 21 x = Math.round(20.5); // Retourne la valeur -20 x = Math.round(-20.5); // Retourne la valeur -21 x = Math.round(-20.51);
Arrondi décimal
(function() { /** * Ajustement décimal d'un nombre * * @param {String} type : Le type d'ajustement souhaité. * @param {Number} value : le nombre à traité The number. * @param {Integer} exp : l'exposant (le logarithme en base 10 de l'ajustement). * @returns {Number} la valeur ajustée. */ function decimalAdjust(type, value, exp) { // Si la valeur de exp n'est pas définie ou vaut zéro... if (typeof exp === 'undefined' || +exp === 0) { return Math[type](value); } value = +value; exp = +exp; // Si la valeur n'est pas un nombre // ou si exp n'est pas un entier... if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) { return NaN; } // Décalage value = value.toString().split('e'); value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp))); // Décalage inversé value = value.toString().split('e'); return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp)); } // Arrondi décimal if (!Math.round10) { Math.round10 = function(value, exp) { return decimalAdjust('round', value, exp); }; } // Arrondi décimal inférieur if (!Math.floor10) { Math.floor10 = function(value, exp) { return decimalAdjust('floor', value, exp); }; } // Arrondi décimal supérieur if (!Math.ceil10) { Math.ceil10 = function(value, exp) { return decimalAdjust('ceil', value, exp); }; } })(); // Arrondi Math.round10(55.55, -1); // 55.6 Math.round10(55.549, -1); // 55.5 Math.round10(55, 1); // 60 Math.round10(54.9, 1); // 50 Math.round10(-55.55, -1); // -55.5 Math.round10(-55.551, -1); // -55.6 Math.round10(-55, 1); // -50 Math.round10(-55.1, 1); // -60 Math.round10(1.005, -2); // 1.01 -- à comparer avec Math.round(1.005*100)/100 // Arrondi inférieur Math.floor10(55.59, -1); // 55.5 Math.floor10(59, 1); // 50 Math.floor10(-55.51, -1); // -55.6 Math.floor10(-51, 1); // -60 // Arrondi supérieur Math.ceil10(55.51, -1); // 55.6 Math.ceil10(51, 1); // 60 Math.ceil10(-55.59, -1); // -55.5 Math.ceil10(-59, 1); // -50
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Standard | Définition initiale. Implémentée avec JavaScript 1.0. |
ECMAScript 5.1 (ECMA-262) La définition de 'Math.round' dans cette spécification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Math.round' dans cette spécification. |
Standard | |
ECMAScript 2017 Draft (ECMA-262) La définition de 'Math.round' dans cette spécification. |
Projet |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |
Fonctionnalité | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |