在 C 语言中使用浮点算术运算

CCBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,你将学习如何在C语言中使用浮点数运算。你将从声明float和double变量开始,然后对它们执行各种算术运算,最后以适当的精度打印结果。本实验涵盖了在C编程中处理十进制数和执行精确数学计算的基本技能。

第一步展示了如何使用floatdouble数据类型声明浮点变量,以及如何以所需的精度打印值。第二步重点介绍对浮点数执行加法、减法、乘法和除法等算术运算。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c(("C")) -.-> c/BasicsGroup(["Basics"]) 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{{"在 C 语言中使用浮点算术运算"}} c/data_types -.-> lab-435202{{"在 C 语言中使用浮点算术运算"}} c/operators -.-> lab-435202{{"在 C 语言中使用浮点算术运算"}} c/math_functions -.-> lab-435202{{"在 C 语言中使用浮点算术运算"}} c/output -.-> lab-435202{{"在 C 语言中使用浮点算术运算"}} end

声明 Float 或 Double 变量

在这一步中,你将学习如何在C语言中使用floatdouble数据类型声明浮点变量。浮点变量对于存储十进制数和执行精确的数学计算至关重要。

首先,让我们创建一个新的C文件来演示变量声明:

cd ~/project
nano floating_variables.c

现在,将以下代码添加到文件中:

#include <stdio.h>

int main() {
    // 声明float变量
    float temperature = 98.6;
    float price = 19.99;

    // 声明double变量
    double pi = 3.14159265359;
    double large_number = 1234567890.123456789;

    // 打印变量
    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() {
    // 声明浮点变量
    float a = 10.5;
    float b = 3.2;

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

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

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

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

    // 混合算术运算
    float mixed_calc = (a + b) * (a - b) / b;
    printf("混合计算: (%.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

示例输出:

加法: 10.50 + 3.20 = 13.70
减法: 10.50 - 3.20 = 7.30
乘法: 10.50 * 3.20 = 33.60
除法: 10.50 / 3.20 = 3.28
混合计算: (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() {
    // 声明浮点变量
    double pi = 3.14159265358979323846;
    double large_number = 1234567.89012345;

    // 默认打印(精度有限)
    printf("默认打印:\n");
    printf("Pi: %f\n", pi);
    printf("大数字: %f\n\n", large_number);

    // 控制小数位数
    printf("控制精度:\n");
    printf("保留2位小数的Pi: %.2f\n", pi);
    printf("保留5位小数的Pi: %.5f\n", pi);
    printf("保留10位小数的Pi: %.10f\n\n", pi);

    // 科学记数法
    printf("科学记数法:\n");
    printf("大数字(默认): %e\n", large_number);
    printf("保留3位小数的大数字: %.3e\n\n", large_number);

    // 宽度和精度结合
    printf("宽度和精度:\n");
    printf("Pi(宽度10,保留4位小数): %10.4f\n", pi);
    printf("大数字(宽度15,保留2位小数): %15.2f\n", large_number);

    return 0;
}

编译并运行程序:

gcc floating_precision.c -o floating_precision
./floating_precision

示例输出:

默认打印:
Pi: 3.141593
大数字: 1234567.890123

控制精度:
保留2位小数的Pi: 3.14
保留5位小数的Pi: 3.14159
保留10位小数的Pi: 3.1415926536

科学记数法:
大数字(默认): 1.234568e+06
保留3位小数的大数字: 1.235e+06

宽度和精度:
Pi(宽度10,保留4位小数):      3.1416
大数字(宽度15,保留2位小数):     1234567.89

关于精度格式化的要点:

  • %f是浮点数的默认格式说明符
  • .2f表示2位小数,.5f表示5位小数
  • %e%E表示科学记数法
  • 宽度说明符有助于对齐和格式化输出

总结

在本实验中,你学习了如何使用floatdouble数据类型声明浮点变量,以及如何对这些值执行算术运算,包括加法、减法、乘法和除法。你还学习了如何使用格式说明符在打印浮点数时控制小数点的精度。这些技能对于在C编程中处理十进制数据和执行精确的数学计算至关重要。