#include
int main(void)
{
double a = 1.0364e4;
printf("%la\n", a);
printf("%le\n",a);
printf("%lf\n", a);
getchar();
return 0;
}
//输出结果为
//0x1.43e000p+13
//1.036400e+004
//10364.000000
但是并不是所有的编译器都支持p计数法,像VS2010==
int main(void)
{
double a = 0xa.1fp10;
printf("%la", a);
getchar();
return 0;
}
//但是遗憾的是,VS2010并不支持C99这一特性,会报错
//但是还是掌握一下p计数法吧 0xa.1fp10这是用16进制表示浮点型常量,p是2,也就是(a.1f)*2^10
//再把a.1f用十六进制转换成十进制的转换方法,就可以得到十进制的结果 (10*2^0+1*16^-1+15*16^-2)*2^10=10364.0
//虽然p计数法不能用,但是以p计数法输出的转换说明%la/%a还是有用的~