当前位置:首页 » 编程语言 » c语言里f和lf的区别
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言里f和lf的区别

发布时间: 2022-04-27 22:25:53

❶ C 语言printf时,%f 与%lf 有什么区别, 难道不是double 用%lf, float 用%f

我用VC++14.0和Dev C++5.11编译后都没出现你说的这种情况。

%l %lf对printf函数来说是没有区别,因为传递给c语言可变参数函数的float类型变量都会被隐式提升为double, 所以这里的%f和%lf的效果是一致的。
但是对于scanf,%f和%lf的含义就不一样了,因为传递的是指针。

一般建议对于float类型使用%f,double类型使用 %lf

❷ c语言中%f与%lf有什么区别

%lf 和%f 的区别为:输入不同、输出不同、精度损失不同。

一、输入不同

1、%lf :%lf 输入数据时要求是float类型。

2、%f :%f 输入数据时要求是double类型。

二、输出不同

1、%lf :double类型以%lf 格式输出数据时不会自动转成%lf 格式,会导致输入值错误。

2、%f :float类型以%f 格式输出数据时会自动转成%f 格式,不会导致输入值错误。

三、精度损失不同

1、%lf :单精度数据使用%lf 格式会造成精度损失。

2、%f :双精度数据使用%f 不会造成精度损失。

❸ c语言中%f与%lf有什么区别

最简单的区别:
%f
一般对应单精度类型
float
%lf
一般对应双精度类型
double。

❹ %lf 与%f有什么区别(给个简单的例子说明)

%lf 与%f的区别有:

1、所能表示数的范围不同

单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38,双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308

2、有效数字位数不同

单精度浮点数有效数字保证6位,部分7位,双精度浮点数有效数字保证15位,部分16位。

3、代表的数据类型不同

%f代表单精度浮点型数据(float),%lf代表双精度浮点型数据(double)。在程序中处理速度不同一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快。

例,以标识符列表方式定义函数:

#include <stdio.h>

void f(a, b)

int a;

float b;

{

printf("%d, %f ", a, b);

}

int main()

{

f();

f(1);

f(2, 3.14);

return 0;

}

❺ c语言里%f跟%lf有什么区别

由于精度的原因,输出%lf和%f的数据不同,可能会造成错误。

主要有一下四点区别:

1、代表的数据类型不同

%f代表单精度浮点型数据(float),%lf代表双精度浮点型数据(double)。

2、有效数字位数不同

单精度浮点数有效数字保证6位,部分7位,双精度浮点数有效数字保证15位,部分16位。

3、所能表示数的范围不同

单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38,双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308

4、在程序中处理速度不同
一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快。

❻ C语言问题%f和%lf的区别

由于精度的原因,输出%lf和%f的数据不同,可能会造成错误。

主要有一下四点区别:

1、代表的数据类型不同

%f代表单精度浮点型数据(float),%lf代表双精度浮点型数据(double)。

2、有效数字位数不同

单精度浮点数有效数字保证6位,部分7位,双精度浮点数有效数字保证15位,部分16位。

3、所能表示数的范围不同

单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38,双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308

4、在程序中处理速度不同
一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快。

❼ c语言编程中%lf和%f,有啥区别,什么double,长短型,求大神解释

作输出格式控制字符串时效果一样,不说。作scanf的输入控制字符串时,%lf是双精度,8字节;%f是单精度,4字节;——也就是%lf对应double型就是,%f对应float型变量,用错了运行结果就出错。double的长型是10字节,精确到19位,double型是8字节,精确到16位,未见过“短double”型。但好多编译器下写long double仍是8字节,就是说没有区分长型和普通型……供参考。