Wie formatiert man Zahlen in wissenschaftlicher Notation?

Lernen Sie, wie man sehr große und sehr kleine Zahlen in JavaScript darstellt

Einführung

Die wissenschaftliche Notation drückt Zahlen als Koeffizient multipliziert mit einer Potenz von 10 aus. Zum Beispiel wird aus 123.000.000 die Darstellung 1,23 × 10^8 und aus 0,000000456 wird 4,56 × 10^-7. Dieses Format macht extrem große und extrem kleine Zahlen leichter lesbar und vergleichbar.

Webanwendungen, die wissenschaftliche Daten, Finanzinformationen oder technische Messungen anzeigen, müssen Zahlen häufig in dieser Form darstellen. JavaScript bietet integrierte Unterstützung für die wissenschaftliche Notation durch die Intl.NumberFormat-API, die sowohl die Formatierung als auch die Lokalisierung übernimmt.

Dieser Artikel zeigt Ihnen, wie Sie Zahlen in wissenschaftlicher Notation formatieren, die Präzision steuern, lokalisierungsspezifische Unterschiede verstehen und zwischen wissenschaftlicher und technischer Notation wählen können.

Zahlen in wissenschaftlicher Notation formatieren

Der Konstruktor Intl.NumberFormat akzeptiert eine Option notation, die steuert, wie Zahlen angezeigt werden. Wenn notation auf "scientific" gesetzt wird, werden Zahlen in wissenschaftlicher Notation formatiert.

const formatter = new Intl.NumberFormat('en-US', {
  notation: 'scientific'
});

console.log(formatter.format(987654321));
// Ausgabe: 9.877E8

Die Ausgabe 9.877E8 repräsentiert 9,877 × 10^8. Das E trennt den Koeffizienten vom Exponenten.

Sehr große Zahlen formatieren

Die wissenschaftliche Notation vereinfacht die Darstellung sehr großer Zahlen, indem sie diese als Koeffizient und Exponent ausdrückt.

const formatter = new Intl.NumberFormat('en-US', {
  notation: 'scientific'
});

console.log(formatter.format(6.02214076e23));
// Ausgabe: 6.022E23

console.log(formatter.format(299792458));
// Ausgabe: 2.998E8

console.log(formatter.format(7800000000));
// Ausgabe: 7.8E9

Die Zahl 6,02214076e23 (Avogadro-Konstante) wird als 6.022E23 formatiert, was sie leichter lesbar macht als 602.214.076.000.000.000.000.000.

Sehr kleine Zahlen formatieren

Die wissenschaftliche Notation funktioniert auch für sehr kleine Zahlen und verwendet negative Exponenten, um Werte kleiner als 1 darzustellen.

const formatter = new Intl.NumberFormat('en-US', {
  notation: 'scientific'
});

console.log(formatter.format(0.000000001));
// Ausgabe: 1E-9

console.log(formatter.format(0.00000000000000000016));
// Ausgabe: 1.6E-19

console.log(formatter.format(0.0000000456));
// Ausgabe: 4.56E-8

Die Zahl 0,00000000000000000016 (ungefähre Ladung eines Elektrons in Coulomb) wird als 1.6E-19 formatiert, wodurch das Zählen von Nullen vermieden wird.

Formatierung der wissenschaftlichen Notation variiert je nach Gebietsschema

Verschiedene Gebietsschemas verwenden unterschiedliche Dezimaltrennzeichen in der wissenschaftlichen Notation. Während das Exponententrennzeichen in den meisten lateinbasierten Gebietsschemas E bleibt, folgt das Dezimaltrennzeichen im Koeffizienten den Konventionen des Gebietsschemas.

const numberToFormat = 987654321;

// US-Englisch verwendet einen Punkt als Dezimaltrennzeichen
const usFormatter = new Intl.NumberFormat('en-US', {
  notation: 'scientific'
});
console.log(usFormatter.format(numberToFormat));
// Output: 9.877E8

// Portugiesisch verwendet ein Komma als Dezimaltrennzeichen
const ptFormatter = new Intl.NumberFormat('pt-PT', {
  notation: 'scientific'
});
console.log(ptFormatter.format(numberToFormat));
// Output: 9,877E8

// Deutsch verwendet ebenfalls ein Komma als Dezimaltrennzeichen
const deFormatter = new Intl.NumberFormat('de-DE', {
  notation: 'scientific'
});
console.log(deFormatter.format(numberToFormat));
// Output: 9,877E8

Das US-englische Gebietsschema erzeugt 9.877E8 mit einem Punkt, während portugiesische und deutsche Gebietsschemas 9,877E8 mit einem Komma erzeugen.

Präzision in der wissenschaftlichen Notation steuern

Die Optionen minimumSignificantDigits und maximumSignificantDigits steuern, wie viele Ziffern in der formatierten Ausgabe erscheinen. Signifikante Stellen umfassen alle Ziffern im Koeffizienten, von der ersten Nicht-Null-Ziffer bis zur letzten Ziffer.

const formatter = new Intl.NumberFormat('en-US', {
  notation: 'scientific',
  minimumSignificantDigits: 3,
  maximumSignificantDigits: 3
});

console.log(formatter.format(123456789));
// Output: 1.23E8

console.log(formatter.format(0.00045678));
// Output: 4.57E-4

Wenn beide Optionen auf 3 gesetzt werden, wird die Ausgabe auf genau drei signifikante Stellen begrenzt. Ohne diese Optionen würde der Formatierer mehr Ziffern aus der ursprünglichen Zahl einbeziehen.

Sie können auch unterschiedliche Minimum- und Maximumwerte festlegen, um variable Präzision zu ermöglichen.

const formatter = new Intl.NumberFormat('en-US', {
  notation: 'scientific',
  minimumSignificantDigits: 2,
  maximumSignificantDigits: 5
});

console.log(formatter.format(123456789));
// Output: 1.2346E8

console.log(formatter.format(100000000));
// Output: 1.0E8

Diese Konfiguration erlaubt zwischen 2 und 5 signifikante Stellen, abhängig von der Eingabezahl.

Zahlen in technischer Schreibweise formatieren

Die technische Schreibweise ist eine Variante der wissenschaftlichen Notation, bei der der Exponent immer ein Vielfaches von 3 ist. Dies entspricht den SI-Präfixen wie Kilo (10^3), Mega (10^6) und Giga (10^9).

const formatter = new Intl.NumberFormat('en-US', {
  notation: 'engineering'
});

console.log(formatter.format(987654321));
// Output: 987.654E6

console.log(formatter.format(0.000000456));
// Output: 456E-9

Die Zahl 987.654.321 wird in technischer Schreibweise als 987.654E6 formatiert, im Vergleich zu 9.877E8 in wissenschaftlicher Notation. Der Exponent 6 ist ein Vielfaches von 3.

Unterschiede zwischen wissenschaftlicher und technischer Schreibweise

Der Hauptunterschied zwischen wissenschaftlicher und technischer Schreibweise liegt in der Wahl des Exponenten. Die wissenschaftliche Notation verwendet beliebige ganzzahlige Exponenten, während die technische Schreibweise Exponenten auf Vielfache von 3 beschränkt.

const scientificFormatter = new Intl.NumberFormat('en-US', {
  notation: 'scientific'
});

const engineeringFormatter = new Intl.NumberFormat('en-US', {
  notation: 'engineering'
});

const testNumbers = [105900, 1234567, 0.00045];

testNumbers.forEach(num => {
  console.log(`Number: ${num}`);
  console.log(`Scientific: ${scientificFormatter.format(num)}`);
  console.log(`Engineering: ${engineeringFormatter.format(num)}`);
  console.log('---');
});

// Output:
// Number: 105900
// Scientific: 1.059E5
// Engineering: 105.9E3
// ---
// Number: 1234567
// Scientific: 1.235E6
// Engineering: 1.235E6
// ---
// Number: 0.00045
// Scientific: 4.5E-4
// Engineering: 450E-6
// ---

Für 105.900 erzeugt die wissenschaftliche Notation 1.059E5, während die technische Schreibweise 105.9E3 erzeugt. Wenn die wissenschaftliche Notation bereits ein Vielfaches von 3 verwendet (wie bei 1.234.567, was 1.235E6 ergibt), produzieren beide Notationen das gleiche Ergebnis.

Anwendungsfälle für wissenschaftliche und technische Schreibweise

Die wissenschaftliche Notation eignet sich gut für Anwendungen, die Daten anzeigen, bei denen Lesbarkeit und Konsistenz wichtiger sind als die Ausrichtung an metrischen Präfixen.

Verwenden Sie die wissenschaftliche Notation für:

  • Wissenschaftliche Taschenrechner und Berechnungstools
  • Astronomie-Anwendungen (Entfernungen, Massen, Leuchtkräfte)
  • Chemie-Anwendungen (Molekularmassen, Konzentrationen)
  • Physik-Simulationen (Teilchenmassen, elektromagnetische Werte)

Die technische Schreibweise eignet sich gut für Anwendungen, bei denen Benutzer in metrischen Präfixen denken oder Werte verbal kommunizieren müssen.

Verwenden Sie die technische Schreibweise für:

  • Elektronik-Anwendungen (Widerstände in Kiloohm, Kapazitäten in Pikofarad)
  • Elektrotechnik-Tools (Spannungen, Ströme, Leistungen)
  • Telekommunikationssysteme (Frequenzen in Megahertz, Datenraten in Gigabit)
  • Maschinenbau (Kräfte in Kilonewton, Drehmomente in Newtonmeter)

Die Wahl hängt von Ihren Benutzern und der Domäne ab. Die wissenschaftliche Notation bietet eine konsistente Formatierung für alle Zahlen, während die technische Schreibweise der Art und Weise entspricht, wie Ingenieure Messungen kommunizieren.