完整输出double形数据,使用%f格式。
C99标准规定用%f输出double类型,%lf等价于%f(可以在"%"和字母之间加小写字母l, 表示输出的是长型数)。
示例代码如下图:
%g把输出的值按照%e或者%f类型中输出长度较小的方式输出。
扩展资料:
可以在"%"和字母之间插进数字表示最大场宽。例如: %9.2f 表示输出场宽为9的浮点数,其中小数位为2,整数位为敬启余,小数点占一位,不够9位右对齐。
如果字符串的长度、或整型数位数超过说明的场宽,将按其旁握实际长度输出。但对浮点数,若整数部分位数超过了说明的整数位宽度,将按实际整数位输出;若小数部分位数超过了说明的小数位亮滚宽度,则按说明的宽度以四舍五入输出。
如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度,小数点前的数字代表最小宽度。例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串;若大于9, 则第9个字符以后的内容将被删除。
参考资料:
%lf。
double和float的精度是不同余滑的,故存储空间也是不同的,所以如果要读入double类型,必须要用%lf来读入,以免精度丢失。而输出,由于printf中并无对%lf的严格定义,故使用%lf不一定会出现正确结果。
由于c语言中的默认参数提升规则,%f输出的不论是float还是double都会被提升到双精度进行输出,并不会有精度丢失。
扩展资料:
double使用的字节位数和输出格式
double (双精度浮点型)类型是C语言的基本类型之一,占有8个字节最大可以表示到1.7*10^308,一般情况下,都可以满足程序的绝仿需要。
double 常规输出为%lf(注意float类型输出为%f)并毁纤 例如:定义double a = 1.0;输printf("%lf",a)。但是double类型在默认情况下,输出小数点后6位,我们通常要减少其小数点后的长度。则可以使用 "%m.nlf"的形式,其中m和n都为正整数。
m是表示输出的浮点型的数据占m位, 如果实际长度不等于m,则按实际长度输出,n表示输出的小数点位数。可以说,m实际上不用管,直接用0代替或者不写。
例如上面输出为:1.000000(默认情况下)
若将输出格式改为"%0.0lf" 或"%4.0lf" 则输出为1(m!=实际长度)
参考资料:百度百科——double
推荐于2017-10-10 · 知道合伙人数码行家
根据“默认参数提升”规则(在printf这样的函数的可变参数列表中,不论作用域内有没有原型,都适用这一规则)float型会被提升为double型。因此printf()只会看到双罩伍精度数。
2、scanf对于float类型必须用%f,double必须用%lf
对于scanf,情况就完全不同了,它物升或接受指针,这里没有类似的类笑乎型提升。
(通过指针)向float存储和向double存储大不一样,因此,scanf区别%f和%lf。
3、事实上,printf中没有定义%lf,但是很多系统可能会接受它。要确保可移植性,
就要坚持使用%f。
要想保留小数位数,请使用(比如保留8位小数):
printf("%.8f",a);
%f是给轿磨float用的
但是,千万注意,%lf在printf下是未定义的(scanf下%lf是定义过的),但是很多系统可能会接受它。要确保可移植性,就贺正要坚持闭拍斗使用%f。
那输出printf("%lf\n”,2.5),或是说printf("%lf\n”,5/2);这些可以么?
可以啊
有什么不可以的
printf中的%f可以输出float和double的
%f 是输出 double 型变量;
区分:%f 是输出 float 型变量;%Lf 是输出 long double 型变量。
基本数据类型
void:声明函数无返回值或无参数,声明无类型指针,显示丢弃运算做胡首结果。(C89标准新增)
char:字符型类型做纤数据,属于整型数据的一种。(K&R时期引入)
int:整型数据,表示范围通常为编译器指定的内存字节长。(K&R时期引入)
float:单精度浮点型数据,属于浮点数据的一种。(K&R时期引入)
double:双精度浮点型数据,属于浮点数据的一种。(K&R时期引入)
_Bool:布尔型(C99标准新增)
_Complex:复数的基本类型(C99标准新增)
_Imaginary:虚数,与复数基本类型相似,没有实部的纯虚数(C99标准新增)
_Generic:提供重载的接口入口(C11标准新增)
扩展资料:
类型修饰关键字
short:修饰int,短整型数据,可省略被修饰的int。(K&R时期引入)
long:修饰int,长整型数据,可省略被修饰的int。(K&R时期引入)
long long:修饰int,超长整型数据,可省略被修饰的int。(C99标准新增)
signed:修饰整型数据,有符号数据类型。(C89标准新增)
unsigned:修饰整型数据,无符号数据类型。(K&R时期引纯数入)
restrict:用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式。(C99标准新增)
复杂类型关键字
struct:结构体声明。(K&R时期引入)
union:联合体声明。(K&R时期引入)
enum:枚举声明。(C89标准新增)
typedef:声明类型别名。(K&R时期引入)
sizeof:得到特定类型或特定类型变量的大小。(K&R时期引入)
inline:内联函数用于取代宏定义,会在任何调用它的地方展开。(C99标准新增)
参考资料:c语言-百度百科