整数是很棒的计数整数,但有时我们需要存储非常大的数字,或数字与小数部分。一个浮点类型变量是一个变量,该变量可以保存一个实数,如4.0,2.5,3.33,0.1226。有三种不同的浮点数据类型:浮子,双,和长双。通常是4字节浮点数和双8字节,但这些都不是严格的要求,所以大小可能会有所不同。长双打被添加到语言后释放的架构,支持更大的浮点数。但通常情况下,他们也8个字节,相当于一个双。浮点数据类型总是签署(可以持有正面和负面的价值)。
漂浮的名字的一部分浮点指,一个浮点数可以有一个可变数目的小数位。例如,2.5有1位小数,而0.1226有4位小数。
当我们分配数字,浮点数,这是约定使用至少一个小数位。这有助于区分浮点值的整数值。
浮点变量如何存储信息超出了本教程的范围,但是它非常类似于数字是用科学记数法。科学记数法是一种有用的速记写冗长的数字在一个简洁的方式。用科学记数法,一个号码有两个部分:有效数字,和一个功率10称为指数。字母“e”或“e”是用来分离两部分。因此,一个数字,例如5 e2相当于5 * 10 ^ 2,或500。5号的飞行相当于5 * 10 ^ 2或0.05。
事实上,我们可以用科学记数法赋值浮点变量。
此外,如果我们输出一个数字,足够大,或者有足够的小数点后,它将被打印在科学记数法:
输出:
1 e + 006
1 e - 005
精密
考虑到部分1/3。小数的表示这个数字是0.33333333333333和3′年代…出去到无穷大。一个无限长度号码需要无限的记忆,和我们通常只有4或8个字节。浮点数只能存储一定数量的位数,其余的都是失去了。精度的一个浮点数是多少位数它可以代表没有信息损失。
当输出浮点数,cout有一个默认的精度,6 -它假设所有变量都是显著的,只有6位数,因此它将截断后的内容,。
下面的程序显示6位数cout主题:
这个程序的输出结果:
1.22222
111.222
111111年
请注意,这些都是只有6位数。
然而,我们可以覆盖默认的精度,通过设置精度cout显示()函数,定义在一个头文件称为iomanip。
输出:
3.333333253860474
3.333333333333334
因为我们设置精度16位数,上述每个数字16位数。但是,正如你所看到的,这些数字并不准确的16位数!
这里有一些声明的浮点数:
float fValue;
double dValue;
long double dValue2;
漂浮的名字的一部分浮点指,一个浮点数可以有一个可变数目的小数位。例如,2.5有1位小数,而0.1226有4位小数。
当我们分配数字,浮点数,这是约定使用至少一个小数位。这有助于区分浮点值的整数值。
int nValue = 5; // 5 means integer
float fValue = 5.0; // 5.0 means floating point
浮点变量如何存储信息超出了本教程的范围,但是它非常类似于数字是用科学记数法。科学记数法是一种有用的速记写冗长的数字在一个简洁的方式。用科学记数法,一个号码有两个部分:有效数字,和一个功率10称为指数。字母“e”或“e”是用来分离两部分。因此,一个数字,例如5 e2相当于5 * 10 ^ 2,或500。5号的飞行相当于5 * 10 ^ 2或0.05。
事实上,我们可以用科学记数法赋值浮点变量。
double dValue1 = 500.0;
double dValue2 = 5e2; // another way to assign 500
double dValue3 = 0.05;
double dValue4 = 5e-2; // another way to assign 0.05
此外,如果我们输出一个数字,足够大,或者有足够的小数点后,它将被打印在科学记数法:
#include <iostream>
int main()
{
using namespace std;
double dValue = 1000000.0;
cout << dValue << endl;
dValue = 0.00001;
cout << dValue << endl;
return 0;
}
输出:
1 e + 006
1 e - 005
精密
考虑到部分1/3。小数的表示这个数字是0.33333333333333和3′年代…出去到无穷大。一个无限长度号码需要无限的记忆,和我们通常只有4或8个字节。浮点数只能存储一定数量的位数,其余的都是失去了。精度的一个浮点数是多少位数它可以代表没有信息损失。
当输出浮点数,cout有一个默认的精度,6 -它假设所有变量都是显著的,只有6位数,因此它将截断后的内容,。
下面的程序显示6位数cout主题:
#include <iostream>
int main()
{
using namespace std;
float fValue;
fValue = 1.222222222222222f;
cout << fValue << endl;
fValue = 111.22222222222222f;
cout << fValue << endl;
fValue = 111111.222222222222f;
cout << fValue << endl;
}
这个程序的输出结果:
1.22222
111.222
111111年
请注意,这些都是只有6位数。
然而,我们可以覆盖默认的精度,通过设置精度cout显示()函数,定义在一个头文件称为iomanip。
#include <iostream>
#include <iomanip> // for setprecision()
int main()
{
using namespace std;
cout << setprecision(16); // show 16 digits
float fValue = 3.33333333333333333333333333333333333333f;
cout << fValue << endl;
double dValue = 3.3333333333333333333333333333333333333;
cout << dValue << endl;
输出:
3.333333253860474
3.333333333333334
因为我们设置精度16位数,上述每个数字16位数。但是,正如你所看到的,这些数字并不准确的16位数!