![零基础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=1739600610-4WlNkFFfbHAesGZmCG6G0nPkeJqzrUKj-0-8c890421bc508557915daa625e623be1)
学习笔记
表格中的[]为可选部分。例如,[signed] long [int]可以简写为long。
实型主要包括单精度型、双精度型和长双精度型,如表2.8所示。
表2.8 实数类型
![](https://epubservercos.yuewen.com/273C7A/26763559209263406/epubprivate/OEBPS/Images/040-2.jpg?sign=1739600610-ONNzekmwDGGPjvXE2p4QKAk4FXgmlrs5-0-a4aed744a85312140e03e2cd993bfdfe)
在程序中使用实型数据时需要注意以下几点。
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=1739600610-FRPelPHBxynHtykpZHFFovrtNxahEl8N-0-449525ea72d660013f234abcc9487160)
上述代码并不是高质量的代码,如果程序要求的精度非常高,可能会产生未知的结果。通常,在比较实数时需要定义实数的精度。
利用实数精度进行实数比较。示例如下:
![](https://epubservercos.yuewen.com/273C7A/26763559209263406/epubprivate/OEBPS/Images/041-2.jpg?sign=1739600610-O3O44pikdvU8eES0gEw1Zyjt5DhLNYrl-0-deb3b297b28407042bc011605001f87f)
执行结果如图2.18所示。
![](https://epubservercos.yuewen.com/273C7A/26763559209263406/epubprivate/OEBPS/Images/041-3.jpg?sign=1739600610-sfyHf4G1g9kXJJPVo7ow5gGyJzVnkmQT-0-7e1b842cee032aa0bc9dfbfc1f701641)
图2.18 执行结果