Zahlen in wissenschaftlicher Notation in C drucken

Jinku Hu 12 Oktober 2023
  1. Verwenden Sie den Formatbezeichner %E, um Zahlen in wissenschaftlicher Notation zu drucken
  2. Verwenden Sie den Formatbezeichner %e, um Zahlen in wissenschaftlicher Notation zu drucken
Zahlen in wissenschaftlicher Notation in C drucken

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:
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook