HOWTO · C

Zahlen in wissenschaftlicher Notation in C drucken

Dieser Artikel beschreibt das Drucken von Zahlen in wissenschaftlicher Notation in C.

Auf dieser Seite

Dieser Artikel zeigt verschiedene Methoden zum Drucken von Zahlen in wissenschaftlicher Notation in C.

Verwenden Sie den Formatbezeichner %E, um Zahlen in wissenschaftlicher Notation zu drucken

Die wissenschaftliche Notation für Zahlen wird häufig verwendet, um große und kleine Werte mit einer prägnanten universellen Form darzustellen. Jede Zahl wird nämlich mit einer einzigen vor dem Dezimalpunkt und der Potenz von 10s dargestellt. Obwohl diese Notation sowohl mit ganzen Zahlen als auch mit reellen Zahlen mathematisch kompatibel ist, ist der Bezeichner printf %E für den Gleitkommatyp vorgesehen. Beachten Sie, dass die Exponentendarstellung nach dem Buchstaben E und dem entsprechenden Vorzeichen folgt. Wenn der Exponentenwert Null ist, lautet das angezeigte Format 00.

#include <stdio.h>
#include <stdlib.h>

int main(void) {
  float n1 = 15000000;
  float n2 = -15000000;
  double n3 = 25.2132;
  double n4 = 0.00001302;

  printf("n1 (%%f) - %f: \n", n1);
  printf("n1 (%%E) - %E: \n", n1);

  printf("n2 (%%f) - %f: \n", n2);
  printf("n2 (%%E) - %E: \n", n2);

  printf("n3 (%%f) - %f: \n", n3);
  printf("n3 (%%E) - %E: \n", n3);

  printf("n4 (%%f) - %f: \n", n4);
  printf("n4 (%%E) - %E: \n", n4);

  exit(EXIT_SUCCESS);
}

Ausgabe:

n1 (%f) - 15000000.000000:
n1 (%E) - 1.500000E+07:
n2 (%f) - -15000000.000000:
n2 (%E) - -1.500000E+07:
n3 (%f) - 25.213200:
n3 (%E) - 2.521320E+01:
n4 (%f) - 0.000013:
n4 (%E) - 1.302000E-05:

Verwenden Sie den Formatbezeichner %e, um Zahlen in wissenschaftlicher Notation zu drucken

Alternativ hat der Formatbezeichner %e dieselben Funktionen wie im vorherigen Beispiel, außer dass der angezeigte Buchstabe in Form von - [-]d.ddde±dd in Kleinbuchstaben geschrieben ist. Jetzt können die Formatbezeichner %e und %E einen Dezimalpunkt und eine Ganzzahl auf der rechten Seite enthalten, um anzugeben, wie viele Stellen angezeigt werden sollen. Wenn der Benutzer die Präzisions-Ganzzahl nicht angibt, wird sie automatisch auf 6 Stellen festgelegt. Wie im folgenden Codebeispiel gezeigt, erhalten negative Gleitkommazahlen nur das Vorzeichensymbol als übliche Dezimalschreibweise.

#include <stdio.h>
#include <stdlib.h>

int main(void) {
  float n1 = 15000000;
  float n2 = -15000000;
  double n3 = 25.2132;
  double n4 = 0.00001302;

  printf("n1 (%%f) - %f: \n", n1);
  printf("n1 (%%.2e) - %.2e: \n", n1);

  printf("n2 (%%f) - %f: \n", n2);
  printf("n2 (%%.1e) - %.1e: \n", n2);

  printf("n3 (%%f) - %f: \n", n3);
  printf("n3 (%%.2e) - %.2e: \n", n3);

  printf("n4 (%%f) - %f: \n", n4);
  printf("n4 (%%.1e) - %.1e: \n", n4);

  exit(EXIT_SUCCESS);
}

Ausgabe:

n1 (%f) - 15000000.000000:
n1 (%.2e) - 1.50e+07:
n2 (%f) - -15000000.000000:
n2 (%.1e) - -1.5e+07:
n3 (%f) - 25.213200:
n3 (%.2e) - 2.52e+01:
n4 (%f) - 0.000013:
n4 (%.1e) - 1.3e-05: