输出double形数据,用%什么

%lf?... %lf? 展开
 我来答
丿MarsHan
推荐于2019-08-30 · TA获得超过4921个赞
知道答主
回答量:79
采纳率:0%
帮助的人:42.2万
展开全部

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

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

示例代码如下图:

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

扩展资料

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

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

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

参考资料:

百度百科-printf()函数

铃屋学姐
高粉答主

推荐于2019-10-30 · 关注我不会让你失望
知道答主
回答量:192
采纳率:72%
帮助的人:8.7万
展开全部

%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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
day忘不掉的痛
推荐于2017-10-10 · 知道合伙人数码行家
day忘不掉的痛
知道合伙人数码行家
采纳数:62646 获赞数:223928
本人担任公司网络部总经理多年,有充足的网络经验、互联网相关知识和资讯。

向TA提问 私信TA
展开全部
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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
455182603
推荐于2017-09-08 · TA获得超过809个赞
知道小有建树答主
回答量:540
采纳率:0%
帮助的人:512万
展开全部
是要用%lf
%f是给float用的
但是,千万注意,%lf在printf下是未定义的(scanf下%lf是定义过的),但是很多系统可能会接受它。要确保可移植性,就要坚持使用%f。
更多追问追答
追问
那输出printf("%lf\n”,2.5),或是说printf("%lf\n”,5/2);这些可以么?
追答
可以啊
有什么不可以的
printf中的%f可以输出float和double的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是一阵风的66
2018-10-22 · TA获得超过1.5万个赞
知道答主
回答量:10
采纳率:0%
帮助的人:2306
展开全部

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式