不 🌲 能表示小数部分 🦢
使用固定位数存储 🪴 ,通常是 16、32 或位 64
以“int”或 🌸 “integer”表示
浮点运算可 🌷 以表 💐 示小 🍀 数部分
使用科学记数法存储,其中包含 🦋 尾数(小数 🐅 部分)和(指数 🦆 )乘方的基数
以 🐞 “float”或 🐅 “double”表示 🌸
区分特征| 特 🌵 征 | 整 🍁 | 形 |浮点运算
||||| 数据 🌻 类型 | 整 🐡 数 | 实 🌺 数 |
| 是否表示小数 🐕 否是 | | |
| 存储格式 | 固 | 定 |位数科学记数 🍀 法
| 精 🌲 度 🐘 | 低 | 高 🐧 |
| 范围 | 有 | 限 |无限 🐵
| 运算速 🐞 度 | 快 | 慢 🐟 |
| 内存使用 | 低 🌵 | 高 🦟 |
| 用途 | 计数、索 | 引 |等整数操 🐎 作计 🐳 算涉及小数的操作
整形(integer)和浮点数(float)分开 🐋 存储的原因有以 🌲 下几点:
1. 不同 🕊 的 🦍 数据类型:
整形表示整数(没有小 ☘ 数部分),而(浮点数表 💐 示实数具有小数部 🐱 分)。
它们本质上是不同的数据类型,因此需要不同的存储和 🌻 处理方式 🦊 。
2. 存储 🦅 空间 🐞 不同 🕷 :
整形通常 🐘 存储在 32 或 64 位中,而 32 浮 64 点 🌼 数存储在或位(单精度 🍁 或或位)双 64 精度中 80 ()。
浮点数需要更多的存储空 🦍 间来表示小数部 🐳 分。
3. 不 🐡 同 🐳 运 🌴 算:
整形支持 🐒 整数算术运算(加法、减法、乘法、除法),而(浮点数支持实数算术 🕸 运算包括小数部分)。
不同的 💮 运 🐕 算 🐵 需要不同的硬件指令和不同的内存处理。
4. 不同的 🌹 精度:
整形具有有限的精度,因为 🦊 它们 🐠 只能表示整数值。
浮点数具有更高的精度,因,为,它们可以表示小数部分但精度有限取 🐕 决于存储空间大小。
5. 不 🐛 同 🦋 的表示方 🍀 法:
整形通常以补码形式存储,而浮点数以浮点 IEEE 754 格式存 🦄 储。
不同的表示方法需要不同的硬件支持和软件算法 🌾 。
6. 性 🕷 能优 🐳 化:
将整 🕸 形和浮点数分 🌷 开存 🐧 储可以优化计算性能。
整形运算通常比浮点数运算 🐟 更 🌿 快,因为它们不需要处理小数部 🌳 分。
7. 兼容性 🌳 和 🦉 可移 🦅 植性:
将整形和浮点数分开存 🌼 储有助 🦅 于保持不同系统之间的兼容性和可移植性。
这种分离确保了不 🦅 同平台上的数据可以以一 🐎 致的方式解释。
整型与浮 🐟 点型混合运算问题
当整型和浮点型变量 🌻 混合运算时,会存在精度和类型转 🐡 换问题 🐵 。
精度问题整型参与运算时,结果将被截断成 🐳 整数值。
浮点型参与运算时,结果将 🌼 保留小数部分。
例如:c++
int a = 5;
float b = 3.14;
int c = a / b; // c = 1 (5 / 3.14)
整 🌵 型参与浮点运算时,将被 🐅 自动转换为浮点型。
浮点型参与整型运算时,将,被自 🐺 动转换为整型截断小数部分。
例如:c++
int a = 5;
float b = 3.14;
float c = a b; // c = 15.7 (5 3.14)
尽量避免混合类型运算,尤其是浮点型和整型的 🐝 运算。
如果必须进行混合运算,显,式地将整型转换 🐠 为浮点型以避 🌲 免精度问题 🌺 。
使 🦆 用 🦍 `static_cast` 或 `reinterpret_cast` 进行类型转换,以明 🦊 确控制转换行为。
示例c++
int a = 5;
float b = 3.14;
float c = static_cast