![零基础C++学习笔记](https://wfqqreader-1252317822.image.myqcloud.com/cover/196/47379196/b_47379196.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.4.1 定义数据类型
C++语言中的数据类型主要分为整型和实型(浮点类型)两大类。其中,整型按符号划分,可以分为有符号和无符号两大类;按长度划分,可以分为普通整型、短整型和长整型三类,如表2.7所示。
表2.7 整数类型
![](https://epubservercos.yuewen.com/273C7A/26763559209263406/epubprivate/OEBPS/Images/040-1.jpg?sign=1739696444-WwtVqk4VgqRW6InMRR416ditCboF2P8I-0-233a828911ae682a6607186e01619018)
学习笔记
表格中的[]为可选部分。例如,[signed] long [int]可以简写为long。
实型主要包括单精度型、双精度型和长双精度型,如表2.8所示。
表2.8 实数类型
![](https://epubservercos.yuewen.com/273C7A/26763559209263406/epubprivate/OEBPS/Images/040-2.jpg?sign=1739696444-sRf02q0tQeXdJsh9yLCazFOWg2gf8f2a-0-747bea200a97c68ae004d419aa3e2eb3)
在程序中使用实型数据时需要注意以下几点。
1)实数的相加
实型数据的有效数字是有限制的,如单精度型的有效数字是6~7位,如果将数字86041238.78赋值给单精度型,显示的数字可能是86041240.00,个位数8被四舍五入,小数位被忽略。如果将86041238.78与5相加,输出的结果为86041245.00,而不是86041242.78。
2)实数与0的比较
在开发程序的过程中,经常会进行两个实数的比较,尽量不要使用“==”或“!=”运算符,应使用“>=”或“<=”之类的运算符,许多程序开发人员在此经常犯错。例如:
![](https://epubservercos.yuewen.com/273C7A/26763559209263406/epubprivate/OEBPS/Images/040-3.jpg?sign=1739696444-sx3fX7KFpo6HeuW6HqEkRcJiTHK3L36u-0-dd110ffbc129dca767d1aade86d0270c)
上述代码并不是高质量的代码,如果程序要求的精度非常高,可能会产生未知的结果。通常,在比较实数时需要定义实数的精度。
利用实数精度进行实数比较。示例如下:
![](https://epubservercos.yuewen.com/273C7A/26763559209263406/epubprivate/OEBPS/Images/041-2.jpg?sign=1739696444-Y46EXtSY5lHtkXZ9PC6mRFsWLzG7FCza-0-c51aa2cc3ea1d54c32be8c1ef935b4ec)
执行结果如图2.18所示。
![](https://epubservercos.yuewen.com/273C7A/26763559209263406/epubprivate/OEBPS/Images/041-3.jpg?sign=1739696444-bI244OBZ9Oet1VasjQVMiTgGeh5OQCNN-0-2f6a0ceeabb3a679e2c838d63fc31c6c)
图2.18 执行结果