Comment formater les nombres en notation scientifique d'ingénieur
Utilisez la notation scientifique d'ingénieur pour afficher les nombres avec des exposants alignés sur les préfixes d'unités SI
Introduction
La notation scientifique d'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 scientifique d'ingénieur l'affiche comme 123×10⁶. Cet alignement avec les 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 de 4,7×10⁻⁶ farads devient 4,7 microfarads. Une fréquence de 2,4×10⁹ hertz devient 2,4 gigahertz. La notation scientifique d'ingénieur rend ces conversions naturelles car l'exposant correspond directement au préfixe SI.
JavaScript fournit une prise en charge intégrée de la notation scientifique d'ingénieur via l'API Intl.NumberFormat. Cette API gère la conversion automatiquement et adapte le formatage aux différentes langues et régions.
Qu'est-ce que la notation scientifique d'ingénieur
La notation scientifique d'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 scientifique d'ingénieur, écrit comme 987,654E6 dans la sortie JavaScript.
Le coefficient apparaît comme un nombre entre 1 et 999,999, suivi de E et de 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 ordres de grandeur. La notation scientifique d'ingénieur montre explicitement la puissance de 10 en utilisant la notation d'exposant.
Pourquoi la notation d'ingénierie 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 étape vers le haut de l'échelle des préfixes multiplie par 10³, et chaque étape vers le bas divise par 10³.
Considérez les préfixes SI pour les puissances de 10 :
- 10³ = kilo (k)
- 10⁶ = méga (M)
- 10⁹ = giga (G)
- 10¹² = téra (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 méga. 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. La notation d'ingénierie permet jusqu'à trois chiffres avant la virgule 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. Le formateur d'ingénierie produit 987,654E6, plaçant trois chiffres avant la virgule pour obtenir un exposant de 6 au lieu de 8.
Les deux notations représentent la même valeur, mais la notation d'ingénieur privilégie l'alignement avec les préfixes SI plutôt que la minimisation de l'exposant.
Utiliser la notation d'ingénieur 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 d'ingénieur.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering"
});
console.log(formatter.format(1500));
// Output: "1.5E3"
console.log(formatter.format(1500000));
// Output: "1.5E6"
console.log(formatter.format(1500000000));
// Output: "1.5E9"
Le formateur choisit automatiquement l'exposant approprié en fonction de la magnitude du nombre. L'exposant est toujours un multiple de 3, garantissant 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 d'ingénieur formate différentes magnitudes
La notation d'ingénieur 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));
// Output: "1.5E-3"
console.log(formatter.format(0.0000015));
// Output: "1.5E-6"
console.log(formatter.format(1.5));
// Output: "1.5E0"
console.log(formatter.format(1500));
// Output: "1.5E3"
console.log(formatter.format(1500000));
// Output: "1.5E6"
console.log(formatter.format(1500000000));
// Output: "1.5E9"
console.log(formatter.format(1500000000000));
// Output: "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 schéma se poursuit pour méga, giga et téra.
Contrôler les décimales dans la notation d'ingénieur
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));
// Output: "1.235E6"
const noDecimalsFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
maximumFractionDigits: 0
});
console.log(noDecimalsFormatter.format(1234567));
// Output: "1E6"
const twoDecimalsFormatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
maximumFractionDigits: 2
});
console.log(twoDecimalsFormatter.format(1234567));
// Output: "1.23E6"
L'option maximumFractionDigits limite le nombre de chiffres qui apparaissent après la virgule dans le coefficient. La définir sur 0 supprime toutes les décimales, n'affichant que la partie entière du coefficient.
Vous pouvez également imposer un nombre minimum de décimales pour maintenir une mise en forme cohérente sur plusieurs nombres.
const formatter = new Intl.NumberFormat("en-US", {
notation: "engineering",
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
console.log(formatter.format(1000));
// Output: "1.00E3"
console.log(formatter.format(1500));
// Output: "1.50E3"
console.log(formatter.format(1234567));
// Output: "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.
Fonctionnement de la notation ingénieur selon les paramètres régionaux
La notation ingénieur s'adapte aux différentes conventions régionales pour les séparateurs décimaux. Le format de l'exposant reste cohérent, mais la mise en forme du coefficient change en fonction des 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 dans 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 suit les conventions scientifiques internationales et ne change pas entre les paramètres régionaux.
Combiner la notation ingénieur avec d'autres options de mise en forme
La notation ingénieur fonctionne avec d'autres options de mise en forme des nombres. Vous pouvez contrôler l'arrondi, les chiffres significatifs et l'affichage du signe tout en utilisant la notation ingénieur.
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 au lieu des 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 seulement les décimales.
Quand utiliser la notation ingénieur
La notation ingénieur 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 techniques utilisent couramment cette notation.
Lors de la documentation d'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. Lors de l'affichage d'une fréquence de 2,4×10⁹ hertz, la notation scientifique affiche 2,4E9, que les ingénieurs reconnaissent comme 2,4 gigahertz.
Cette notation est moins adaptée aux audiences générales qui peuvent ne pas comprendre la notation exponentielle. Les compteurs de réseaux sociaux, les prix e-commerce et les tableaux de bord destinés aux consommateurs devraient utiliser la notation standard ou la notation compacte à la place.
N'utilisez pas la notation scientifique lorsque la précision est critique et que tous les chiffres comptent. 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 $, et non 1,23456E3.
Considérez votre audience. Les ingénieurs, physiciens et professionnels techniques attendent et comprennent la notation scientifique. Les consommateurs généraux trouvent la notation standard ou la notation compacte plus facile à lire.