输出double形数据,用%什么

%lf?

完整输出double形数据,使用%f格式。

C99标准规定用%f输出double类型,%lf等价于%f(可以在"%"和字母之间加小写字母l, 表示输出的是长型数)。

示例代码如下图:

%g把输出的值按照%e或者%f类型中输出长度较小的方式输出。

扩展资料

可以在"%"和字母之间插进数字表示最大场宽。例如: %9.2f 表示输出场宽为9的浮点数,其中小数位为2,整数位为,小数点占一位,不够9位右对齐。

如果字符串的长度、或整型数位数超过说明的场宽,将按其实际长度输出。但对浮点数,若整数部分位数超过了说明的整数位宽度,将按实际整数位输出;若小数部分位数超过了说明的小数位宽度,则按说明的宽度以四舍五入输出。

如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度,小数点前的数字代表最小宽度。例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串;若大于9, 则第9个字符以后的内容将被删除。

参考资料:

百度百科-printf()函数

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-10-30

%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

本回答被网友采纳
第2个回答  推荐于2017-10-10
1、printf的%f说明符既可以输出float型又可以输出double型。
根据“默认参数提升”规则(在printf这样的函数的可变参数列表中,不论作用域内有没有原型,都适用这一规则)float型会被提升为double型。因此printf()只会看到双精度数。
2、scanf对于float类型必须用%f,double必须用%lf
对于scanf,情况就完全不同了,它接受指针,这里没有类似的类型提升。
(通过指针)向float存储和向double存储大不一样,因此,scanf区别%f和%lf。
3、事实上,printf中没有定义%lf,但是很多系统可能会接受它。要确保可移植性,
就要坚持使用%f。
要想保留小数位数,请使用(比如保留8位小数):
printf("%.8f",a);
第3个回答  推荐于2017-09-08
是要用%lf
%f是给float用的
但是,千万注意,%lf在printf下是未定义的(scanf下%lf是定义过的),但是很多系统可能会接受它。要确保可移植性,就要坚持使用%f。追问

那输出printf("%lf\n”,2.5),或是说printf("%lf\n”,5/2);这些可以么?

追答

可以啊
有什么不可以的
printf中的%f可以输出float和double的

追问

printf中的%f可以输出float和double的,呃,问一句,那还要%fl干什么啊。。。没什么用啊。。。

追答

%lf是在scanf里用的
printf里没有这东西
但是大家都觉的这样不习惯,怎么办呢,就把它加到printf里去了
但是也不是所有的编译器都这样做,毕竟有一些没有
于是,%lf用在printf里或许有的编译器会编译通不过

本回答被提问者采纳
第4个回答  2018-10-22

%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语言-百度百科

相似回答