作者在 2008-11-22 18:15:16 发布以下内容
C语言中的浮点型数据就是平常所说的实数,用123.3(十进制)或123e3(指数型)表示。123e3表示123×103。中间的e可大写也可小写。
浮点类型变量的分类
类型 位数 有效数字 数值范围
float 32 6~7 -3.4×10-38~3.4×1038
double 64 15~16 -1.7×10-308~1.7×10308
long double 128 18~19 -1.2×10-4932~1.2×104932
3.4 浮点型数据的舍入误差
#include <stdio.h>
void main()
{
float a,b;
a = 123456.789e5;
b = a + 20;
printf("b=%f\na=%f\n",b,a);/*%f 是输出浮点数时指定的格式符,作用是指定该实数以小数形式输出*/
getchar();
}
运行结果如下图
a与b的值相同显然是不正确的,原因是:a的值比20大很多,a+20理论值应该是12345678920,而一个浮点型变量只能保证的有效数字是7为,后面的的数值都是无意义的,因此并不能准确的表示该数。
浮点类型变量的分类
类型 位数 有效数字 数值范围
float 32 6~7 -3.4
double 64 15~16 -1.7×10-308~1.7×10308
long double 128 18~19 -1.2×10-4932~1.2×104932
3.4 浮点型数据的舍入误差
#include <stdio.h>
void main()
{
float a,b;
a = 123456.789e5;
b = a + 20;
printf("b=%f\na=%f\n",b,a);/*%f 是输出浮点数时指定的格式符,作用是指定该实数以小数形式输出
getchar();
}
运行结果如下图
a与b的值相同显然是不正确的,原因是:a的值比20大很多,a+20理论值应该是12345678920,而一个浮点型变量只能保证的有效数字是7为,后面的的数值都是无意义的,因此并不能准确的表示该数。