Comment formater les nombres en notation scientifique
Utilisez la notation scientifique pour afficher des nombres avec des exposants qui s'alignent avec les préfixes d'unités SI
Introduction
La notation ingénieur est une façon d'écrire les nombres en utilisant des puissances de 10 où l'exposant est toujours un multiple de 3. Au lieu d'afficher 123 000 000 comme 1,23×10⁸, la notation ingénieur l'affiche comme 123×10⁶. Cet alignement avec des multiples de 3 correspond aux préfixes du Système international d'unités (SI) comme kilo (10³), méga (10⁶) et giga (10⁹).
Cette notation apparaît fréquemment dans les contextes d'ingénierie, d'électronique et scientifiques où les mesures utilisent les préfixes SI. Un condensateur évalué à 4,7×10⁻⁶ farads devient 4,7 microfarads. Une fréquence de 2,4×10⁹ hertz devient 2,4 gigahertz. La notation ingénieur rend ces conversions naturelles car l'exposant correspond directement au préfixe SI.
JavaScript offre un support intégré pour la notation ingénieur via l'API Intl.NumberFormat. Cette API gère la conversion automatiquement et adapte le formatage à différentes langues et régions.
Qu'est-ce que la notation ingénieur
La notation ingénieur exprime les nombres comme un coefficient multiplié par une puissance de 10, où l'exposant est toujours divisible par 3. Le nombre 987 654 321 devient 987,654×10⁶ en notation ingénieur, écrit comme 987.654E6 dans la sortie JavaScript.
Le coefficient apparaît comme un nombre entre 1 et 999,999, suivi par E et l'exposant. Le E signifie exposant et indique une multiplication par 10 élevé à cette puissance. La valeur 987.654E6 signifie 987,654 × 10⁶, ce qui équivaut à 987 654 000.
Ce format diffère de la notation décimale standard, qui écrit tous les chiffres avec des séparateurs comme 987 654 321. Il diffère également de la notation compacte, qui utilise des lettres comme K, M et B pour représenter les magnitudes. La notation ingénieur montre explicitement la puissance de 10 en utilisant la notation exponentielle.
Pourquoi la notation scientifique utilise des multiples de trois
La restriction aux multiples de 3 existe parce que les préfixes d'unités SI augmentent ou diminuent par facteurs de 1000. Chaque pas vers le haut dans l'échelle des préfixes multiplie par 10³, et chaque pas vers le bas divise par 10³.
Considérons les préfixes SI pour les puissances de 10 :
- 10³ = kilo (k)
- 10⁶ = mega (M)
- 10⁹ = giga (G)
- 10¹² = tera (T)
- 10⁻³ = milli (m)
- 10⁻⁶ = micro (μ)
- 10⁻⁹ = nano (n)
- 10⁻¹² = pico (p)
Lorsqu'un nombre utilise la notation d'ingénierie avec un exposant de 6, vous savez qu'il correspond au préfixe mega. Lorsque l'exposant est -9, vous savez qu'il correspond au préfixe nano. Cette correspondance directe rend la notation d'ingénierie pratique pour les domaines techniques où les unités SI dominent.
Sans cette restriction, vous devriez effectuer des calculs mentaux pour convertir entre la notation et les préfixes SI. Avec la restriction, la conversion est immédiate.
Comment la notation d'ingénierie diffère de la notation scientifique
La notation scientifique exprime également les nombres en utilisant des puissances de 10, mais elle utilise l'exposant le plus petit possible. Le nombre 987 654 321 devient 9,87654321×10⁸ en notation scientifique, écrit comme 9,87654321E8.
La notation scientifique place toujours exactement un chiffre non nul avant la virgule décimale. La notation d'ingénierie permet jusqu'à trois chiffres avant la virgule décimale pour garantir que l'exposant est divisible par 3.
const scientificFormatter = new Intl.NumberFormat("en-US", {
notation: "scientific"
});
console.log(scientificFormatter.format(987654321));
// Output: "9.877E8"
const engineeringFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering"
});
console.log(engineeringFormatter.format(987654321));
// Output: "987.654E6"
Le formateur scientifique produit 9.877E8, plaçant un chiffre avant la virgule décimale. Le formateur d'ingénierie produit 987.654E6, plaçant trois chiffres avant la virgule décimale pour obtenir un exposant de 6 au lieu de 8.
Les deux notations représentent la même valeur, mais la notation d'ingénierie privilégie l'alignement avec les préfixes SI plutôt que la minimisation de l'exposant.
Utilisation de la notation scientifique en JavaScript
L'option notation dans Intl.NumberFormat contrôle la façon dont les nombres sont représentés. La définir sur "engineering" active la notation scientifique.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering"
});
console.log(formatter.format(1500));
// Résultat: "1.5E3"
console.log(formatter.format(1500000));
// Résultat: "1.5E6"
console.log(formatter.format(1500000000));
// Résultat: "1.5E9"
Le formateur choisit automatiquement l'exposant approprié en fonction de la magnitude du nombre. L'exposant est toujours un multiple de 3, assurant l'alignement avec les préfixes SI.
Vous n'avez pas besoin de calculer l'exposant ou le coefficient correct. L'API Intl gère ces calculs en fonction de la valeur du nombre.
Comment la notation scientifique formate différentes magnitudes
La notation scientifique s'applique à toutes les échelles, des très petits aux très grands nombres. Comprendre comment différentes magnitudes correspondent aux exposants vous aide à prédire le résultat.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering"
});
console.log(formatter.format(0.0015));
// Résultat: "1.5E-3"
console.log(formatter.format(0.0000015));
// Résultat: "1.5E-6"
console.log(formatter.format(1.5));
// Résultat: "1.5E0"
console.log(formatter.format(1500));
// Résultat: "1.5E3"
console.log(formatter.format(1500000));
// Résultat: "1.5E6"
console.log(formatter.format(1500000000));
// Résultat: "1.5E9"
console.log(formatter.format(1500000000000));
// Résultat: "1.5E12"
Les petits nombres inférieurs à 1 utilisent des exposants négatifs. Le nombre 0.0015 devient 1.5E-3, correspondant au préfixe milli. Le nombre 0.0000015 devient 1.5E-6, correspondant au préfixe micro.
Les nombres autour de 1 utilisent un exposant de 0. Le nombre 1.5 devient 1.5E0, ce qui équivaut à 1.5 × 10⁰ = 1.5 × 1 = 1.5.
Les grands nombres utilisent des exposants positifs. Le nombre 1500 devient 1.5E3, correspondant au préfixe kilo. Le modèle continue pour méga, giga et téra.
Contrôle des décimales dans la notation scientifique
Par défaut, le formateur inclut plusieurs décimales dans le coefficient. Vous pouvez contrôler la précision en utilisant les options minimumFractionDigits et maximumFractionDigits.
const defaultFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering"
});
console.log(defaultFormatter.format(1234567));
// Résultat: "1.235E6"
const noDecimalsFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
maximumFractionDigits: 0
});
console.log(noDecimalsFormatter.format(1234567));
// Résultat: "1E6"
const twoDecimalsFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
maximumFractionDigits: 2
});
console.log(twoDecimalsFormatter.format(1234567));
// Résultat: "1.23E6"
L'option maximumFractionDigits limite le nombre de chiffres qui apparaissent après la virgule dans le coefficient. La définir à 0 supprime toutes les décimales, ne montrant que la partie entière du coefficient.
Vous pouvez également imposer un nombre minimum de décimales pour maintenir un formatage cohérent entre plusieurs nombres.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
console.log(formatter.format(1000));
// Résultat: "1.00E3"
console.log(formatter.format(1500));
// Résultat: "1.50E3"
console.log(formatter.format(1234567));
// Résultat: "1.23E6"
Cela garantit que tous les nombres affichent exactement deux décimales, ce qui aide à maintenir une cohérence visuelle dans les tableaux et les rapports.
Comment fonctionne la notation scientifique selon les paramètres régionaux
La notation scientifique s'adapte aux différentes conventions régionales pour les séparateurs décimaux. Le format de l'exposant reste cohérent, mais le formatage du coefficient change selon les paramètres régionaux.
const enFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering"
});
console.log(enFormatter.format(1234567));
// Output: "1.235E6"
const deFormatter = new Intl.NumberFormat("de-DE", {
notation: "engineering"
});
console.log(deFormatter.format(1234567));
// Output: "1,235E6"
const frFormatter = new Intl.NumberFormat("fr-FR", {
notation: "engineering"
});
console.log(frFormatter.format(1234567));
// Output: "1,235E6"
L'anglais utilise un point comme séparateur décimal dans le coefficient. L'allemand et le français utilisent une virgule comme séparateur décimal. Le E et l'exposant restent identiques pour tous les paramètres régionaux.
Cette localisation s'applique uniquement à la partie coefficient. La notation de l'exposant utilisant E et la valeur de l'exposant suivent les conventions scientifiques internationales et ne changent pas entre les paramètres régionaux.
Combiner la notation scientifique avec d'autres options de formatage
La notation scientifique fonctionne avec d'autres options de formatage des nombres. Vous pouvez contrôler l'arrondi, les chiffres significatifs et l'affichage du signe tout en utilisant la notation scientifique.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
signDisplay: "always"
});
console.log(formatter.format(1500000));
// Output: "+1.5E6"
console.log(formatter.format(-1500000));
// Output: "-1.5E6"
L'option signDisplay contrôle si les nombres positifs affichent un signe plus. La définir sur "always" affiche le signe pour les valeurs positives et négatives.
Vous pouvez également contrôler les chiffres significatifs plutôt que les décimales.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
minimumSignificantDigits: 4,
maximumSignificantDigits: 4
});
console.log(formatter.format(1234567));
// Output: "1.235E6"
console.log(formatter.format(1567890));
// Output: "1.568E6"
Les options minimumSignificantDigits et maximumSignificantDigits contrôlent le nombre total de chiffres significatifs dans le coefficient, plutôt que simplement les décimales.
Quand utiliser la notation scientifique
La notation scientifique fonctionne mieux dans les contextes techniques où les mesures utilisent les préfixes d'unités SI. La documentation électronique, les articles scientifiques et les spécifications d'ingénierie utilisent couramment cette notation.
Lorsqu'on documente un circuit avec un condensateur de 4,7×10⁻⁶ farad, la notation scientifique affiche la valeur comme 4,7E-6. Les ingénieurs reconnaissent immédiatement cela comme 4,7 microfarads. Lorsqu'on affiche une fréquence de 2,4×10⁹ hertz, la notation scientifique montre 2,4E9, que les ingénieurs reconnaissent comme 2,4 gigahertz.
Cette notation est moins adaptée pour le grand public qui pourrait ne pas comprendre la notation avec exposants. Les compteurs de médias sociaux, les prix de commerce électronique et les tableaux de bord destinés aux consommateurs devraient plutôt utiliser la notation standard ou la notation compacte.
N'utilisez pas la notation scientifique lorsque la précision est critique et que tous les chiffres sont importants. Les calculs financiers, les documents juridiques et les pistes d'audit nécessitent des représentations décimales exactes. Un solde bancaire devrait afficher 1 234,56 €, pas 1,23456E3.
Prenez en compte votre public. Les ingénieurs, les physiciens et les professionnels techniques s'attendent à la notation scientifique et la comprennent. Les consommateurs ordinaires trouvent la notation standard ou la notation compacte plus facile à lire.