C++ double和float(浮点类型)详解

您所在的位置:网站首页 浮点运算无效是什么意思 C++ double和float(浮点类型)详解

C++ double和float(浮点类型)详解

2024-03-17 04:28| 来源: 网络整理| 查看: 265

整数并不足以适应许多工作。如果正在编写的程序需要计算货币金额或精确测量,那么就需要一种允许分数值的数据类型。在编程术语上,称之为浮点数。 浮点数内部的存储方式和科学计数法是一样的。以数字 47 281.97 为例,在科学计数法中,这个数字是 4.728 197X104。其中,104 等于 10000,4.728 197X 10 000 也就是 47 281.97。该数字的第一部分,即 4.728 197,称为尾数。 计算机通常使用 E 符号来表示浮点值。以 E 符号表示,数字 47 281.97 就应该是 4.728 197E4。E 前的数字部分是尾数,E 之后的部分是 10 的幂。当内存中存储一个浮点数时,它将被存储为尾数和 10 的幂,如表 1 所示。 表 1 显示了科学计数法和E符号表示的其他数字 十进制法 科学计数法 E 符号表示法 247.91 2.4791 X102 2.4791E2 0.00072 7.2 X10-4 7.2E-4 2 900 000 2.9 X106 2.9E6 在 C++ 中有以下 3 种数据类型可以表示浮点数,分别是 float、double 和 long double。 float 数据类型被认为是单精度。double 数据类型通常是 float 的两倍大小,因此被认为是双精度。顾名思义,long double 数据类型又比 double 要大。这些数据类型的确切大小取决于当前使用的计算机。唯一可以保证的是: double 至少与 float 一样大。 long double 至少与 double一样大。 表 2 显示了通常在 PC 上发现的浮点数据类型的大小和范围。 表 2 PC上的浮点数据类型 数据类型 关键字 大小 范 围 有效数字 单精度 float 4字节 数字介于 ±3.4E-38 和 ±3.4E38 之间 7 双精度 double 8字节 数字介于 ±1.7E-308 和 ±1.7E308 之间 16 高双精度 long double 8字节 数字介于 ±1.7E-308 和 ±1.7E308 之间 16

有些编译器会对 long double 类型使用 8 个以上的字节。这意味着更大的数字范围。

有些人可能已经注意到,浮点数据类型没有无符号分类,这是因为在所有机器上,float、double 和 long double 数据类型的变量都可以存储正数和负数。下面的程序是使用浮点数据类型的示例。 //程序 1 // This program uses two floating-point data types, float and double. #include using namespace std; int main() { float distance = 1. 496E8; //in kilometers double mass = 1.989E30; //in kilograms cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3