输出double形数据,用%啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输出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()函数

参考技术A

%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

参考技术B 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);
参考技术C 是要用%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里或许有的编译器会编译通不过

本回答被提问者采纳
参考技术D

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

C语言中printf输出float和double都用%f么(scanf又如何)

答:

1.C语言中printf输出float和double都可以用%f,而double型数据还可以用%lf。

2.scanf当中若是对双精度的变量赋值是必须是%后跟lf,而printf当中可以用%f也可以用%lf没有限制。

拓展资料:

c语言中的格式控制符:

%d十进制有符号整数

%u十进制无符号整数

%f浮点数

%s字符串

%c单个字符

%p指针的值

%e指数形式的浮点数

%x,%X无符号以十六进制表示的整数

%0无符号以八进制表示的整数

%g自动选择合适的表示法

参考资料:c语言-百度百科

参考技术A 1 printf输出float和double都可以用%f,double还可以用%lf。
2 scanf输入float用%f,double输入用%lf,不能混用。本回答被提问者采纳
参考技术B 1、printf输出float和double都可以用%f,同时double还可以用%lf。
2、scanf输出float用%f,而double输出用%lf,不能混用。
拓展资料:
C语言编程软件是一款使用代码C语言进行编程的软件,C语言简洁、高效、灵活的特性令其具有独特魅力。现在的程序编写朝着越来越冗长庞大的方向发展,而C语言虽然属于相对'低级'的编程语言,但它的简洁之美是无可替代的。
参考技术C 1 printf输出float和double都可以用%f,double还可以用%lf。
2 scanf输入float用%f,double输入用%lf,不能混用。
参考技术D double用%lf.scanf和printf一样

以上是关于输出double形数据,用%啥的主要内容,如果未能解决你的问题,请参考以下文章

float和double有啥区别?

c语言 float型数据输入需要注意啥吗

C语言中想输出double和long double型分别用啥控制字符?

C语言double用百分号啥

C语言中double表示啥?

decimal对应java啥类型