Работа с арифметикой чисел с плавающей запятой в языке C

CBeginner
Практиковаться сейчас

Введение

В этом лабораторном занятии вы научитесь работать с арифметикой с плавающей запятой на языке C. Вы начнете с объявления переменных типа float и double, затем выполните различные арифметические операции над ними и, наконец, выведете результаты с соответствующей точностью. В лабораторном занятии рассматриваются основные навыки работы с десятичными числами и выполнения точных математических вычислений в программировании на языке C.

Первый этап демонстрирует, как объявлять переменные с плавающей запятой с использованием типов данных float и double, а также как выводить значения с требуемой точностью. Второй этап посвящен выполнению арифметических операций, таких как сложение, вычитание, умножение и деление, над числами с плавающей запятой.

Объявление переменных типа float или double

На этом этапе вы научитесь объявлять переменные с плавающей запятой на языке C с использованием типов данных float и double. Переменные с плавающей запятой являются важными для хранения десятичных чисел и выполнения точных математических вычислений.

Сначала создадим новый файл на языке C, чтобы продемонстрировать объявление переменных:

cd ~/project
nano floating_variables.c

Теперь добавьте следующий код в файл:

#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;
}

Скомпилируйте и запустите программу:

gcc floating_variables.c -o floating_variables
./floating_variables

Пример вывода:

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

Разберем код:

  • float используется для чисел с плавающей запятой одинарной точности (обычно 4 байта)
  • double используется для чисел с плавающей запятой двойной точности (обычно 8 байт)
  • Спецификаторы формата %.2f и %.5f контролируют точность вывода десятичных знаков при печати

Выполнение арифметических операций над значениями с плавающей запятой

На этом этапе вы научитесь выполнять различные арифметические операции над числами с плавающей запятой на языке C, включая сложение, вычитание, умножение и деление.

Давайте изменим предыдущий файл, чтобы продемонстрировать арифметику с плавающей запятой:

cd ~/project
nano floating_arithmetic.c

Добавьте следующий код в файл:

#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;
}

Скомпилируйте и запустите программу:

gcc floating_arithmetic.c -o floating_arithmetic
./floating_arithmetic

Пример вывода:

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

Основные моменты арифметики с плавающей запятой:

  • Используйте спецификатор формата %.2f для контроля десятичной точности
  • Арифметические операции с плавающей запятой следуют стандартным математическим правилам
  • Будьте осторожны с возможными ограничениями точности при вычислениях с плавающей запятой

Вывод результатов с соответствующей точностью

На этом этапе вы научитесь контролировать точность вывода чисел с плавающей запятой с использованием спецификаторов формата в языке C.

Создайте новый файл, чтобы изучить различные форматы точности:

cd ~/project
nano floating_precision.c

Добавьте следующий код в файл:

#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;
}

Скомпилируйте и запустите программу:

gcc floating_precision.c -o floating_precision
./floating_precision

Пример вывода:

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

Основные моменты форматирования точности:

  • %f — это стандартный спецификатор формата для чисел с плавающей запятой
  • .2f означает 2 десятичных знака, .5f означает 5 десятичных знаков
  • %e или %E показывают число в научной нотации
  • Спецификаторы ширины помогают выравнивать и форматировать вывод

Резюме

В этом лабораторном занятии вы научились объявлять переменные с плавающей запятой с использованием типов данных float и double, а также выполнять арифметические операции над этими значениями, включая сложение, вычитание, умножение и деление. Вы также научились контролировать точность десятичных знаков при выводе чисел с плавающей запятой с использованием спецификаторов формата. Эти навыки являются важными для работы с десятичными данными и выполнения точных математических вычислений в программировании на языке C.