用科学计数法表示双精度实数:
#include<stdio.h>
int main()
{
double a=498465468.549;
printf("%e",a); //标准指数形式输出单,双精度数(科学计数法)
//数字部分小数位数为6位,小数末位四舍五入,指数支持3位
//不支持整数
return 0;
}
关于单精度和双精度实数的有效位数的实验:
#include<stdio.h>
int main()
{
float a=44846.1234567841011;//float型小数最多有效数字为8位,整数位为0时
double b=0.12345678910111224;//double类型数小数最多有效数字为16位,当整数位为0时
//随着整数位数的增多,小数位有效数字逐渐减少,但相加总和不变
//即整数位数 + 小数位数 = 有效位数(16)
//与double类型数据的在内存单元中的存储结构有关
printf("%-8.2lfhello\n",3.456);//末位四舍五入
printf("%.16f\t%.16lf\n",a,a);//%f和%lf效果相同
printf("%.16lf\t%.16f\n",b,b);
return 0;
}
/*即float型有效数字最多为8位,double类型有效数字最多为16位*/