C语言关于浮点型输出的问题


printf("%f",8/5);,
c语言中,printf函数不会进行任何数据转换, 它只是从内存中读出你所提供的元素的值(按照%d,%f等控制字符提示的格式)。C语言设计中,int类型一般是32bit或者16bit,而float一般是64bit,并且有可能使用科学计数保存。8/5=1 在内存中为 0000,0000,0000,0001。而且因为在静态区的原因,这段内存前后默认也是0,使用%f来读,会读64位,而且会使用科学计数法  0*2的1次方 所以结果为0。

此处推荐阅读:https://blog.csdn.net/u013412165/article/details/52557483



猜你喜欢

转载自blog.csdn.net/qq_29379641/article/details/80574708