%f和%lf不应该是精度不同吗?为什么这个程序这样?

img


这个程序用%f输入 程序是正常的 但是改成%lf输入时不管输入的是什么 输出的都是1000。 为什么这两个不应该是精度的不同吗?

用在输出上不是输入上的吧?

%f对应float型,%lf对应double型
这不是强制类型转换,这只是内存里的2进制数据如何转换成字符串的问题
c语言是比较古早的语言,printf这个函数它不自动判断数据类型,而需要你告诉它要按什么类型输出