Runden in C durchführen

CCBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie man Rundungsvorgänge in der C-Programmierung durchführt. Sie beginnen mit der Deklaration von Gleitkommavariablen und erkunden anschließend die Verwendung verschiedener Rundungsfunktionen wie round(), floor() und ceil(), um die Werte zu manipulieren. Schließlich geben Sie die gerundeten Ergebnisse aus, um die verschiedenen Rundungsverhaltensweisen zu beobachten.

Dieses Lab behandelt die grundlegenden Fähigkeiten der arithmetischen Basisoperationen in C und bietet eine solide Grundlage für die Arbeit mit Gleitkommazahlen und deren Rundungsverfahren.

Gleitkommavariablen deklarieren

In diesem Schritt lernen Sie, wie Sie Gleitkommavariablen in C deklarieren und initialisieren. Dies ist essentiell für die Durchführung von Rundungsvorgängen.

Erstellen Sie zunächst eine neue C-Datei für die Arbeit mit Gleitkommavariablen:

cd ~/project
nano rounding.c

Fügen Sie nun folgenden Code in die Datei ein:

#include <stdio.h>

int main() {
    // Gleitkommavariablen deklarieren
    float num1 = 3.7;
    double num2 = 4.2;

    // Die ursprünglichen Werte ausgeben
    printf("Ursprünglicher float-Wert: %.1f\n", num1);
    printf("Ursprünglicher double-Wert: %.1f\n", num2);

    return 0;
}

Kompilieren und führen Sie das Programm aus:

gcc rounding.c -o rounding
./rounding

Beispielausgabe:

Ursprünglicher float-Wert: 3.7
Ursprünglicher double-Wert: 4.2

Zerlegung des Codes:

  • float wird für einfach präzise Gleitkommazahlen verwendet.
  • double wird für doppelt präzise Gleitkommazahlen verwendet.
  • Der Formatbezeichner %.1f gibt die Zahl mit einer Dezimalstelle aus.
  • num1 und num2 werden mit Dezimalwerten initialisiert.

Funktionen zum Runden verwenden (z. B. round, floor, ceil)

In diesem Schritt lernen Sie, wie Sie Rundungsfunktionen in C verwenden, um Gleitkommazahlen zu manipulieren. Wir werden die vorherige Datei rounding.c modifizieren, um verschiedene Rundungsmethoden zu demonstrieren.

Öffnen Sie die bestehende Datei:

cd ~/project
nano rounding.c

Ersetzen Sie den vorherigen Inhalt durch folgenden Code:

#include <stdio.h>
#include <math.h>

int main() {
    // Gleitkommavariablen deklarieren
    float num1 = 3.7;
    double num2 = 4.2;

    // Werte mit verschiedenen Funktionen runden
    printf("Ursprüngliche Werte:\n");
    printf("num1: %.1f, num2: %.1f\n\n", num1, num2);

    // Verwendung der round()-Funktion
    printf("Rundungsfunktion:\n");
    printf("round(num1): %.0f\n", round(num1));
    printf("round(num2): %.0f\n\n", round(num2));

    // Verwendung der floor()-Funktion
    printf("Floor-Funktion:\n");
    printf("floor(num1): %.0f\n", floor(num1));
    printf("floor(num2): %.0f\n\n", floor(num2));

    // Verwendung der ceil()-Funktion
    printf("Ceil-Funktion:\n");
    printf("ceil(num1): %.0f\n", ceil(num1));
    printf("ceil(num2): %.0f\n", ceil(num2));

    return 0;
}

Kompilieren Sie das Programm mit der Mathematikbibliothek:

gcc rounding.c -o rounding -lm
./rounding

Beispielausgabe:

Ursprüngliche Werte:
num1: 3.7, num2: 4.2

Rundungsfunktion:
round(num1): 4
round(num2): 4

Floor-Funktion:
floor(num1): 3
floor(num2): 4

Ceil-Funktion:
ceil(num1): 4
ceil(num2): 5

Wichtige Punkte zu Rundungsfunktionen:

  • round(): Rundet auf die nächste ganze Zahl.
  • floor(): Rundet ab auf die nächste ganze Zahl.
  • ceil(): Rundet auf die nächste ganze Zahl auf.
  • Der Flag -lm wird verwendet, um die Mathematikbibliothek beim Kompilieren zu verknüpfen.
  • Der Formatbezeichner %.0f gibt ganze Zahlen ohne Dezimalstellen aus.

Gerundete Ergebnisse ausgeben

In diesem Schritt lernen Sie, wie Sie gerundete Ergebnisse mit verschiedenen Genauigkeitsstufen und Formatierungsoptionen formatieren und ausgeben.

Öffnen Sie die bestehende Datei:

cd ~/project
nano rounding.c

Aktualisieren Sie den Code, um verschiedene Ausgabetechniken zu demonstrieren:

#include <stdio.h>
#include <math.h>

int main() {
    // Gleitkommavariablen deklarieren
    float num1 = 3.7;
    double num2 = 4.2;

    // Runden mit verschiedenen Ausgabeformaten
    printf("Runden-Demonstration:\n");

    // Gerundete Werte mit unterschiedlicher Genauigkeit ausgeben
    printf("1. Gerundete Werte:\n");
    printf("   round(num1) = %.0f\n", round(num1));
    printf("   round(num2) = %.0f\n\n", round(num2));

    // Ausgabe mit Feldbreite und Genauigkeit
    printf("2. Formatierte gerundete Werte:\n");
    printf("   Gerundetes num1 mit Breite: %5.1f\n", round(num1));
    printf("   Gerundetes num2 mit Breite: %5.1f\n\n", round(num2));

    // Ausgabe der ganzzahligen und Gleitkomma-Darstellungen
    printf("3. Ganzzahl- und Gleitkommadarstellungen:\n");
    printf("   num1 als Ganzzahl: %d\n", (int)round(num1));
    printf("   num2 als Ganzzahl: %d\n", (int)round(num2));

    return 0;
}

Kompilieren und ausführen des Programms:

gcc rounding.c -o rounding -lm
./rounding

Beispielausgabe:

Runden-Demonstration:
1. Gerundete Werte:
   round(num1) = 4
   round(num2) = 4

2. Formatierte gerundete Werte:
   Gerundetes num1 mit Breite:   4.0
   Gerundetes num2 mit Breite:   4.0

3. Ganzzahl- und Gleitkommadarstellungen:
   num1 als Ganzzahl: 4
   num2 als Ganzzahl: 4

Wichtige Ausgabetechniken:

  • %.0f entfernt Dezimalstellen.
  • %5.1f legt Feldbreite und Genauigkeit fest.
  • Typumwandlung mit (int) konvertiert in eine Ganzzahl.
  • Verschiedene Formatbezeichner steuern das Erscheinungsbild der Ausgabe.

Zusammenfassung

In diesem Labor haben Sie gelernt, wie man Gleitkommavariablen, einschließlich float und double, deklariert und verschiedene Rundungsfunktionen wie round(), floor() und ceil() verwendet, um diese Werte zu manipulieren. Sie haben die ursprünglichen Werte ausgegeben und anschließend die Rundungsfunktionen verwendet, um die gerundeten Ergebnisse anzuzeigen. Dadurch konnten Sie die unterschiedlichen Verhaltensweisen dieser Funktionen und ihre Anwendung zum Runden von Zahlen auf, ab oder auf die nächste ganze Zahl verstehen.