Arbeiten mit Fließkommaarithmetik in C

CBeginner
Jetzt üben

Einführung

In diesem Lab werden Sie lernen, wie man mit Fließkommaarithmetik in C arbeitet. Sie beginnen damit, float- und double-Variablen zu deklarieren, führen dann verschiedene arithmetische Operationen auf ihnen aus und geben schließlich die Ergebnisse mit angemessener Genauigkeit aus. Das Lab behandelt die wesentlichen Fähigkeiten für die Arbeit mit Dezimalzahlen und die Durchführung präziser mathematischer Berechnungen in der C-Programmierung.

Der erste Schritt zeigt, wie man Fließkomma-Variablen mit den Datentypen float und double deklariert und wie man die Werte mit der gewünschten Genauigkeit ausgibt. Der zweite Schritt konzentriert sich auf die Durchführung arithmetischer Operationen wie Addition, Subtraktion, Multiplikation und Division mit Fließkommazahlen.

Deklarieren von Float- oder Double-Variablen

In diesem Schritt lernen Sie, wie man Fließkomma-Variablen in C mit den Datentypen float und double deklariert. Fließkomma-Variablen sind essentiell für die Speicherung von Dezimalzahlen und die Durchführung präziser mathematischer Berechnungen.

Zunächst erstellen wir eine neue C-Datei, um die Variablendeklarationen zu demonstrieren:

cd ~/project
nano floating_variables.c

Fügen Sie jetzt den folgenden Code zur Datei hinzu:

#include <stdio.h>

int main() {
    // Declaring float variables
    float temperature = 98.6;
    float price = 19.99;

    // Declaring double variables
    double pi = 3.14159265359;
    double large_number = 1234567890.123456789;

    // Printing the variables
    printf("Temperature (float): %.2f\n", temperature);
    printf("Price (float): %.2f\n", price);
    printf("Pi (double): %.5f\n", pi);
    printf("Large Number (double): %.9f\n", large_number);

    return 0;
}

Kompilieren und führen Sie das Programm aus:

gcc floating_variables.c -o floating_variables
./floating_variables

Beispielausgabe:

Temperature (float): 98.60
Price (float): 19.99
Pi (double): 3.14159
Large Number (double): 1234567890.123456789

Lassen Sie uns den Code analysieren:

  • float wird für Fließkommazahlen mit einfacher Genauigkeit (typischerweise 4 Bytes) verwendet.
  • double wird für Fließkommazahlen mit doppelter Genauigkeit (typischerweise 8 Bytes) verwendet.
  • Die Format-Spezifizierer %.2f und %.5f steuern die Dezimalstellenpräzision beim Ausgeben.

Durchführen von Arithmetikoperationen auf Fließkommawerten

In diesem Schritt lernen Sie, wie man verschiedene arithmetische Operationen auf Fließkommazahlen in C durchführt, einschließlich Addition, Subtraktion, Multiplikation und Division.

Lassen Sie uns die vorherige Datei ändern, um die Fließkommaarithmetik zu demonstrieren:

cd ~/project
nano floating_arithmetic.c

Fügen Sie den folgenden Code zur Datei hinzu:

#include <stdio.h>

int main() {
    // Declare floating-point variables
    float a = 10.5;
    float b = 3.2;

    // Addition
    float sum = a + b;
    printf("Addition: %.2f + %.2f = %.2f\n", a, b, sum);

    // Subtraction
    float difference = a - b;
    printf("Subtraction: %.2f - %.2f = %.2f\n", a, b, difference);

    // Multiplication
    float product = a * b;
    printf("Multiplication: %.2f * %.2f = %.2f\n", a, b, product);

    // Division
    float quotient = a / b;
    printf("Division: %.2f / %.2f = %.2f\n", a, b, quotient);

    // Mixed arithmetic operations
    float mixed_calc = (a + b) * (a - b) / b;
    printf("Mixed Calculation: (%.2f + %.2f) * (%.2f - %.2f) / %.2f = %.2f\n",
           a, b, a, b, b, mixed_calc);

    return 0;
}

Kompilieren und führen Sie das Programm aus:

gcc floating_arithmetic.c -o floating_arithmetic
./floating_arithmetic

Beispielausgabe:

Addition: 10.50 + 3.20 = 13.70
Subtraction: 10.50 - 3.20 = 7.30
Multiplication: 10.50 * 3.20 = 33.60
Division: 10.50 / 3.20 = 3.28
Mixed Calculation: (10.50 + 3.20) * (10.50 - 3.20) / 3.20 = 24.41

Wichtige Punkte zur Fließkommaarithmetik:

  • Verwenden Sie den Format-Spezifizierer %.2f, um die Dezimalpräzision zu steuern.
  • Fließkommaoperationen folgen den Standardregeln der Mathematik.
  • Seien Sie sich der potenziellen Präzisionsbeschränkungen bei Fließkomma-Berechnungen bewusst.

Ausgabe von Ergebnissen mit angemessener Präzision

In diesem Schritt lernen Sie, wie man die Präzision der Ausgabe von Fließkommazahlen in C mit Format-Spezifizierern steuert.

Erstellen Sie eine neue Datei, um verschiedene Präzisionsformatierungen zu untersuchen:

cd ~/project
nano floating_precision.c

Fügen Sie den folgenden Code zur Datei hinzu:

#include <stdio.h>

int main() {
    // Declare floating-point variables
    double pi = 3.14159265358979323846;
    double large_number = 1234567.89012345;

    // Default printing (limited precision)
    printf("Default printing:\n");
    printf("Pi: %f\n", pi);
    printf("Large Number: %f\n\n", large_number);

    // Controlling decimal places
    printf("Controlled Precision:\n");
    printf("Pi with 2 decimal places: %.2f\n", pi);
    printf("Pi with 5 decimal places: %.5f\n", pi);
    printf("Pi with 10 decimal places: %.10f\n\n", pi);

    // Scientific notation
    printf("Scientific Notation:\n");
    printf("Large Number (default): %e\n", large_number);
    printf("Large Number (3 decimal places): %.3e\n\n", large_number);

    // Width and precision combined
    printf("Width and Precision:\n");
    printf("Pi (width 10, 4 decimal places): %10.4f\n", pi);
    printf("Large Number (width 15, 2 decimal places): %15.2f\n", large_number);

    return 0;
}

Kompilieren und führen Sie das Programm aus:

gcc floating_precision.c -o floating_precision
./floating_precision

Beispielausgabe:

Default printing:
Pi: 3.141593
Large Number: 1234567.890123

Controlled Precision:
Pi with 2 decimal places: 3.14
Pi with 5 decimal places: 3.14159
Pi with 10 decimal places: 3.1415926536

Scientific Notation:
Large Number (default): 1.234568e+06
Large Number (3 decimal places): 1.235e+06

Width and Precision:
Pi (width 10, 4 decimal places):      3.1416
Large Number (width 15, 2 decimal places):     1234567.89

Wichtige Punkte zur Präzisionsformatierung:

  • %f ist der Standard-Format-Spezifizierer für Fließkommazahlen.
  • .2f bedeutet 2 Dezimalstellen, .5f bedeutet 5 Dezimalstellen.
  • %e oder %E zeigt die wissenschaftliche Notation an.
  • Breiten-Spezifizierer helfen bei der Ausrichtung und Formatierung der Ausgabe.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie man Fließkomma-Variablen mit den Datentypen float und double deklariert und wie man arithmetische Operationen auf diesen Werten durchführt, einschließlich Addition, Subtraktion, Multiplikation und Division. Sie haben auch gelernt, wie man die Präzision der Dezimalstellen bei der Ausgabe von Fließkommazahlen mit Format-Spezifizierern steuert. Diese Fähigkeiten sind essentiell für die Arbeit mit Dezimaldaten und die Durchführung präziser mathematischer Berechnungen in der C-Programmierung.