C语言中 %f 与%lf 有什么区别?能否举一个简单易懂的例子?初学者,在线等 谢谢 c语言中%f与%lf有什么区别?

%lf \u4e0e%f\u6709\u4ec0\u4e48\u533a\u522b\uff08\u7ed9\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50\u8bf4\u660e\uff09

%lf \u4e0e%f\u7684\u533a\u522b\u6709\uff1a
1\u3001\u6240\u80fd\u8868\u793a\u6570\u7684\u8303\u56f4\u4e0d\u540c
\u5355\u7cbe\u5ea6\u6d6e\u70b9\u7684\u8868\u793a\u8303\u56f4\uff1a-3.40E+38 ~ +3.40E+38\uff0c\u53cc\u7cbe\u5ea6\u6d6e\u70b9\u7684\u8868\u793a\u8303\u56f4\uff1a-1.79E+308 ~ +1.79E+308
2\u3001\u6709\u6548\u6570\u5b57\u4f4d\u6570\u4e0d\u540c
\u5355\u7cbe\u5ea6\u6d6e\u70b9\u6570\u6709\u6548\u6570\u5b57\u4fdd\u8bc16\u4f4d\uff0c\u90e8\u52067\u4f4d\uff0c\u53cc\u7cbe\u5ea6\u6d6e\u70b9\u6570\u6709\u6548\u6570\u5b57\u4fdd\u8bc115\u4f4d\uff0c\u90e8\u520616\u4f4d\u3002

3\u3001\u4ee3\u8868\u7684\u6570\u636e\u7c7b\u578b\u4e0d\u540c
%f\u4ee3\u8868\u5355\u7cbe\u5ea6\u6d6e\u70b9\u578b\u6570\u636e\uff08float\uff09\uff0c%lf\u4ee3\u8868\u53cc\u7cbe\u5ea6\u6d6e\u70b9\u578b\u6570\u636e\uff08double\uff09\u3002\u5728\u7a0b\u5e8f\u4e2d\u5904\u7406\u901f\u5ea6\u4e0d\u540c\u4e00\u822c\u6765\u8bf4\uff0cCPU\u5904\u7406\u5355\u7cbe\u5ea6\u6d6e\u70b9\u6570\u7684\u901f\u5ea6\u6bd4\u5904\u7406\u53cc\u7cbe\u5ea6\u6d6e\u70b9\u6570\u5feb\u3002
\u4f8b\uff0c\u4ee5\u6807\u8bc6\u7b26\u5217\u8868\u65b9\u5f0f\u5b9a\u4e49\u51fd\u6570\uff1a
#include
void f(a, b)
int a;
float b;
{
printf("%d, %f\n", a, b);
}
int main()
{
f();
f(1);
f(2, 3.14);
return 0;
}
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1\u2014c\u8bed\u8a00

%lf\n\u548c%f\n\u7684\u533a\u522b\u4e3a\uff1a\u8f93\u5165\u4e0d\u540c\u3001\u8f93\u51fa\u4e0d\u540c\u3001\u7cbe\u5ea6\u635f\u5931\u4e0d\u540c\u3002
\u4e00\u3001\u8f93\u5165\u4e0d\u540c
1\u3001%lf\n\uff1a%lf\n\u8f93\u5165\u6570\u636e\u65f6\u8981\u6c42\u662ffloat\u7c7b\u578b\u3002
2\u3001%f\n\uff1a%f\n\u8f93\u5165\u6570\u636e\u65f6\u8981\u6c42\u662fdouble\u7c7b\u578b\u3002
\u4e8c\u3001\u8f93\u51fa\u4e0d\u540c
1\u3001%lf\n\uff1adouble\u7c7b\u578b\u4ee5%lf\n\u683c\u5f0f\u8f93\u51fa\u6570\u636e\u65f6\u4e0d\u4f1a\u81ea\u52a8\u8f6c\u6210%lf\n\u683c\u5f0f\uff0c\u4f1a\u5bfc\u81f4\u8f93\u5165\u503c\u9519\u8bef\u3002
2\u3001%f\n\uff1afloat\u7c7b\u578b\u4ee5%f\n\u683c\u5f0f\u8f93\u51fa\u6570\u636e\u65f6\u4f1a\u81ea\u52a8\u8f6c\u6210%f\n\u683c\u5f0f\uff0c\u4e0d\u4f1a\u5bfc\u81f4\u8f93\u5165\u503c\u9519\u8bef\u3002

\u4e09\u3001\u7cbe\u5ea6\u635f\u5931\u4e0d\u540c
1\u3001%lf\n\uff1a\u5355\u7cbe\u5ea6\u6570\u636e\u4f7f\u7528%lf\n\u683c\u5f0f\u4f1a\u9020\u6210\u7cbe\u5ea6\u635f\u5931\u3002
2\u3001%f\n\uff1a\u53cc\u7cbe\u5ea6\u6570\u636e\u4f7f\u7528%f\n\u4e0d\u4f1a\u9020\u6210\u7cbe\u5ea6\u635f\u5931\u3002

%f 般对应单精度类型 float
%lf 般对应双精度类型 double
%f是单精度浮点型,输出的时候要满足6位小数。
%lf就是输出数值总长度为L,整数个数加小数个数,不足补空,右顶格起

%f对应float数据类型。
%lf对应double数据类型。

例子如下:
void main()
{
float a;
double b;
scanf("%f,%lf",&a,&b);
printf("\n\n%f,%lf",a,b);
}

单精度和双精度,基础使用的话是差不多的,都用来表示浮点数也就是带小数点的数

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网