关于指数记数法在%la,%le,%lf下的输出~

#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还是有用的~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值