与整数相比,浮点数有两大优点。首先,它们可以表示整数之间的值。其次,它们表示的范围比整数大。
但是,浮点数运算速度比整数运算慢,而且精度降低。请看下面程序
<span style="font-size:18px;"><strong>#include <iostream>
using namespace std;
int main()
{
float a = 2.34e+22f;
float b = a + 1.0f;
cout << "a = " << a << endl;
cout << "b - a =" << b - a << endl;
return 0;
}</strong></span>
其运行结果为:
a = 2.34e+022
b - a = 0
为什么b - a等于0而不等于1呢?
问题在于,2.34e+22是一个小数点左边有23位的数字。加上1,就是23位+1。但是float类型只能表示数字中的前6位或者前7位,因此修改第23位时对这个值不会有任何影响。