Trabajar con la aritmética de punto flotante en C

CCBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo trabajar con aritmética de punto flotante en C. Comenzarás declarando variables de tipo float y double, luego realizarás varias operaciones aritméticas con ellas y, finalmente, imprimirás los resultados con la precisión adecuada. El laboratorio cubre las habilidades esenciales para trabajar con números decimales y realizar cálculos matemáticos precisos en la programación en C.

El primer paso demuestra cómo declarar variables de punto flotante utilizando los tipos de datos float y double, y cómo imprimir los valores con la precisión deseada. El segundo paso se centra en realizar operaciones aritméticas, como suma, resta, multiplicación y división, con números de punto flotante.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/BasicsGroup -.-> c/data_types("Data Types") c/BasicsGroup -.-> c/operators("Operators") c/FunctionsGroup -.-> c/math_functions("Math Functions") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-435202{{"Trabajar con la aritmética de punto flotante en C"}} c/data_types -.-> lab-435202{{"Trabajar con la aritmética de punto flotante en C"}} c/operators -.-> lab-435202{{"Trabajar con la aritmética de punto flotante en C"}} c/math_functions -.-> lab-435202{{"Trabajar con la aritmética de punto flotante en C"}} c/output -.-> lab-435202{{"Trabajar con la aritmética de punto flotante en C"}} end

Declarar variables de tipo float o double

En este paso, aprenderás cómo declarar variables de punto flotante en C utilizando los tipos de datos float y double. Las variables de punto flotante son esenciales para almacenar números decimales y realizar cálculos matemáticos precisos.

Primero, creemos un nuevo archivo C para demostrar las declaraciones de variables:

cd ~/project
nano floating_variables.c

Ahora, agrega el siguiente código al archivo:

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

Compila y ejecuta el programa:

gcc floating_variables.c -o floating_variables
./floating_variables

Ejemplo de salida:

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

Analicemos el código:

  • float se utiliza para números de punto flotante de precisión simple (por lo general, 4 bytes)
  • double se utiliza para números de punto flotante de doble precisión (por lo general, 8 bytes)
  • Los especificadores de formato %.2f y %.5f controlan la precisión de los decimales al imprimir

Realizar operaciones aritméticas con valores de punto flotante

En este paso, aprenderás cómo realizar varias operaciones aritméticas con números de punto flotante en C, incluyendo suma, resta, multiplicación y división.

Modifiquemos el archivo anterior para demostrar la aritmética de punto flotante:

cd ~/project
nano floating_arithmetic.c

Agrega el siguiente código al archivo:

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

Compila y ejecuta el programa:

gcc floating_arithmetic.c -o floating_arithmetic
./floating_arithmetic

Ejemplo de salida:

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

Puntos clave sobre la aritmética de punto flotante:

  • Utiliza el especificador de formato %.2f para controlar la precisión decimal
  • Las operaciones de punto flotante siguen las reglas matemáticas estándar
  • Ten en cuenta las posibles limitaciones de precisión en los cálculos de punto flotante

Imprimir resultados con la precisión adecuada

En este paso, aprenderás cómo controlar la precisión de la salida de números de punto flotante utilizando especificadores de formato en C.

Crea un nuevo archivo para explorar diferentes formatos de precisión:

cd ~/project
nano floating_precision.c

Agrega el siguiente código al archivo:

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

Compila y ejecuta el programa:

gcc floating_precision.c -o floating_precision
./floating_precision

Ejemplo de salida:

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

Puntos clave sobre el formato de precisión:

  • %f es el especificador de formato predeterminado para números de punto flotante
  • .2f significa 2 decimales, .5f significa 5 decimales
  • %e o %E muestra notación científica
  • Los especificadores de ancho ayudan a alinear y dar formato a la salida

Resumen

En este laboratorio, aprendiste cómo declarar variables de punto flotante utilizando los tipos de datos float y double, y cómo realizar operaciones aritméticas con estos valores, incluyendo suma, resta, multiplicación y división. También aprendiste cómo controlar la precisión de los decimales al imprimir números de punto flotante utilizando especificadores de formato. Estas habilidades son esenciales para trabajar con datos decimales y realizar cálculos matemáticos precisos en la programación en C.