printf("%d",5.01)和printf("%f",5)的输出结果

   printf("%f\n",5);
   printf("%d\n",5.01); 
   printf("%f\n", (float)5);  
   printf("%f\n", 5.f);  


输出结果:

看到结果,会感觉非常奇怪。1处怎么会输出0呢?2又为何会显示这么大的一个数呢?

解释:

下面是转自网上的一篇博客的解释

1,之所以没输出5,这是C语言设计的原因。
2,之所以输出0,这是计算机体系结构的问题。

具体来说:

printf函数不会进行任何类型转换,它只是从内存中读出你所提供的元素的值(按照%d,%f等控制字符提示的格式)。C语言设计中,int类型一般是32bit或者16bit,而float一般是64bit,并且有可能使用科学计数保存。这点就

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页