- 零基础C++学习笔记
- 明日科技编著
- 456字
- 2025-02-20 17:54:13
2.4.1 定义数据类型
C++语言中的数据类型主要分为整型和实型(浮点类型)两大类。其中,整型按符号划分,可以分为有符号和无符号两大类;按长度划分,可以分为普通整型、短整型和长整型三类,如表2.7所示。
表2.7 整数类型

学习笔记
表格中的[]为可选部分。例如,[signed] long [int]可以简写为long。
实型主要包括单精度型、双精度型和长双精度型,如表2.8所示。
表2.8 实数类型

在程序中使用实型数据时需要注意以下几点。
1)实数的相加
实型数据的有效数字是有限制的,如单精度型的有效数字是6~7位,如果将数字86041238.78赋值给单精度型,显示的数字可能是86041240.00,个位数8被四舍五入,小数位被忽略。如果将86041238.78与5相加,输出的结果为86041245.00,而不是86041242.78。
2)实数与0的比较
在开发程序的过程中,经常会进行两个实数的比较,尽量不要使用“==”或“!=”运算符,应使用“>=”或“<=”之类的运算符,许多程序开发人员在此经常犯错。例如:

上述代码并不是高质量的代码,如果程序要求的精度非常高,可能会产生未知的结果。通常,在比较实数时需要定义实数的精度。
利用实数精度进行实数比较。示例如下:

执行结果如图2.18所示。

图2.18 执行结果