跳至正文
View Categories

1 min read

1. 实型(实数型/浮点型) #

简单来说,实型就是:1.1、-17.2、88.8、666.66、…
C++ 中,用 floatdouble 来表示。

变量的基本操作:

#include <iostream> // 使用头文件
using namespace std; // 使用名称空间 std

int main()
{
    float a; // 声明一个实型变量
    a = 88.8;// 赋值(存放数值 88.8 到变量 a 中)
    double b(8.88);// 初始化为 8.88
    cout << "实型变量 a 的值是:" << a << endl;
    cout << "实型变量 b 的值是:" << b << endl; 
    return 0;
}

1.1 不同大小的实型 #

什么是 floatdouble

和整型一样,floatdouble 是不同存储大小的实型类型。

它们的大小关系为:float < double

1.2 变量的基本操作 #

请看示例程序:

#include <iostream> // 使用头文件
using namespace std; int main() { float a_float; // 声明一个 float 变量 double a_double; // 声明一个 double 变量 a_float = 18.6f; // 赋值,float,f 表示这是 float 类型的数。小数数值,默认是 double 类型的。 a_double = 56.5; // 赋值,double a_float = -18.6f; // 赋值,float ,可以是负数 a_double = -56.5; // 赋值,double,可以是负数 cout << "float value = " << a_float << endl; cout << "double value = " << a_double << endl; return 0; }

注意:实型,都是有符号的。不存在 unsigned float 这样的写法。

1.3 不同实型的表示范围 #

类型名称 float double long double
所占字节数 4 8 16
表示范围 -3.4E+38~3.4E+38 -1.7E+308~1.7E+308 -3.4E4932~3.4E4932

1.4 含有实型的运算(加、减、乘) #

这里,主要是指 含有小数 的运算情况。比如:
5 + 8.6
5 – 8.6
5 * 8.6

#include <iostream> // 使用头文件
using namespace std; // 使用名称空间 std

int main()
{
    int     a (2021);
    double  b(3.14);
    float   c (2.17f);         // f 表示,这是一个 float 类型的小数

    cout << "a * b = " << a * b << endl;  // 直接输出结果

    double result1 = a * b;  // 注意:计算的结果是一个 double 类型的小数,这也符合数学规则。
    float  result2 = a * c;   // 注意:计算的结果是一个 float  类型的小数

    return 0;
}

请注意,含有实型的运算结果,也是一个实型(这里主要是指:小数参与运算的情况)

1.5 小数参与的除法 #

请运行下面代码:

#include <iostream> // 使用头文件
using namespace std; // 使用名称空间 std

int main()
{
    double a  (10.5);
    double result_0 = a / 3.14; // 除法,用 / 表示
    cout << "result = " << result_0 << endl;

    int    b (10);
    double result_1 = b / 3.14; // 除法,用 / 表示
    cout << "result = " << result_1 << endl;

    int    c (50);
    float  result_2 = c / 3.14f; // 除法,用 / 表示
    cout << "result = " << result_2 << endl;

    return 0;
}

含有 实型(主要指小数) 的运算结果,也是一个 实型(主要指小数)

1.6 保留小数 #

在数学中,有许许多多的常数,例如圆周率(π)、自然常数(e)、黄金分割数,它们往往都是无限不循环小数,以圆周率为例,π = 3.1415926535897932…,在使用时,我们往往只保留小数点后前几位,那么在C++中,我们怎么保留小数呢?

double pi = 3.1415926535897932; // 保留5位小数 

这里我们要引用一个新的头文件:iomanip

iomanip 库里的setprecision(),它的作用是设置浮点数的有效数位。

#include <iostream> // 使用头文件 
#include <iomanip> // 使用头文件 iomanip 
using namespace std; // 使用名称空间 std

int main()
{
    double pi = 3.1415926535897932;  

    cout << fixed << setprecision(5) << pi <<endl; // 保留5位小数

    return 0;
}

请运行下列代码:

#include <iostream> // 使用头文件 
#include <iomanip> // 使用头文件 iomanip 
using namespace std; // 使用名称空间 std

int main()
{
    double a = 1234.123456;

    cout << setprecision(3) << a <<endl;
    cout << fixed << setprecision(3) << a <<endl;

    return 0;
}

发现有什么区别吗?

没有fixed:从整数数位开始计算,结果会以科学计数法来表示。

有fixed:从小数点后的位数开始计算,即保留小数。

注意:

输出语句顺序为 fixed << setprecision(位数) << 变量名。

2. 课后练习 #

    1. 双精度浮点数的输入输出

    1. 计算分数的浮点数值

    1. 计算多项式的值

    1. 财务管理

    1. 温度转换