C++语言程序设计

| 程序2-4

#include "iostream.h"
#include "iomanip.h"
int main(int argc, char* argv[])
{
char ch=97;
cout<<ch<<endl;
float f1=0.123456789123456789;
double f2=0.123456789123456789;
cout<<setprecision(20)<<f1<<endl;
cout<<setprecision(20)<<f2<<endl;
return 0;
}
程序运行结果为：
0.123457
0.123456789123457

从上面的程序我们可以看到，float型有效位是6位，double型有效位是15位，最后一位采用四舍五入的方法。所以说，浮点型数据一般是不准确的，经过大量运算以后，结果的误差会很大。看下面的例子：

| 程序2-5

#include "iostream.h"
#include "iomanip.h"
int main(int argc, char* argv[])
{
float f3=0.001;
float result=0.0;
int i;
for (i=0;i<1000;i++) result+=f3;
cout<<result<<endl;
return 0;
}
程序运行的结果是：
0.999991

所以，使用浮点数进行运算一定要考虑误差因素。