在c语言中,%lf和%d有什么区别啊?好像都是双精度类型吧?

如题所述

no,%d是十进制整型输出,%lf是双精度浮点型,我想你是要问%f与%lf单精度浮点与双精度浮点吧,其实这是取值范围和精度的问题,保证单精度浮点精确到小数点后六位,双精度浮点精确到15~16位
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-28
%if是双精度数,%d是整数进制追问

为什么有的时候不能用%f而用%if呢?请您说详细点

追答

printf的%f说明符的确既可以输出float型又可以输出double型。根据“默认参数提升”规则float型会被提升为double型。因此printf()只会看到双精度数。对于scanf,情况就完全不同了,它接受指针,这里没有类似的类型提升。向float存储和向double存储大不一样,因此,scanf区别%f和%lf。
也就是说输出的时候不管输出的是双精度还是单精度都用%f就没错了,但是输入的时候,输入单精度要用%f而输入双精度要用%lf

本回答被提问者采纳
相似回答