JavaScript:
Arrondir les nombres
Comment faire :
Voici comment vous arrondissez les nombres en JavaScript en utilisant Math.round()
, Math.ceil()
, et Math.floor()
:
let originalNumber = 2.567;
let roundedDown = Math.floor(originalNumber); // 2
let roundedUp = Math.ceil(originalNumber); // 3
let rounded = Math.round(originalNumber); // 3 (puisque .567 est plus que .5)
console.log(roundedDown); // Imprime : 2
console.log(roundedUp); // Imprime : 3
console.log(rounded); // Imprime : 3
Pour fixer un certain nombre de décimales, utilisez toFixed()
:
let twoDecimals = originalNumber.toFixed(2); // "2.57" (retourne une chaîne de caractères)
console.log(twoDecimals); // Imprime : "2.57"
Convertissez la chaîne de retour en un nombre avec un plus unaire ou Number()
:
let numberAgain = +twoDecimals; // 2.57
console.log(numberAgain); // Imprime : 2.57
Approfondissement
Arrondir les nombres n’est pas nouveau ; cela existe depuis aussi longtemps que les nombres. En JavaScript, Math.round()
utilise le “round half up” pour la règle de bris d’égalité : si la partie fractionnaire est 0.5, il arrondit au nombre pair le plus proche.
Pour plus de contrôle, toFixed()
pourrait être votre prédilection, mais souvenez-vous, il retourne une chaîne. Le reconvertir en nombre pourrait être une étape supplémentaire mais assure que vous continuez à travailler avec des types numériques.
Des alternatives ? Des bibliothèques comme lodash
offrent _.round(number, [precision=0])
pour un contrôle plus nuancé. Ou, la plus récente Intl.NumberFormat
vous donne un formatage de haute précision au-delà de l’arrondissement.
Parlant de précision, méfiez-vous des bizarreries de point flottant en JavaScript. 0.1 + 0.2
n’équivaut pas exactement à 0.3
en raison de la manière dont les nombres sont stockés. Parfois, l’arrondissement devient nécessaire pour corriger de telles erreurs de point flottant.
Voir Aussi
- Documentation Math de Mozilla : MDN Web Docs
- Arrondissement financier avec
Intl.NumberFormat
: API d’internationalisation ECMAScript - Arrondissement avec
lodash
: Docs de Lodash