【C语言】float与double在输出/输入时的注意点

举报
holo.yh 发表于 2021/05/21 16:07:37 2021/05/21
【摘要】 【总结】 1.float型对应%f,double型对应%lf 2.输入类型不对应,会导致程序运行错误;输出类型不对应,则没问题。

float型对应%f,double型对应%lf(小写L,不是数字1)。

%f和%lf分别是float类型和double类型用于格式化输入输出时对应的格式符号。
其中:
float,单精度浮点型,对应%f。
double,双精度浮点型,对应%lf。


一、以对应的格式输入时,可正常运行,代码如下:

#include<Stdio.h>
int main(){
	//float型变量
	float i ;
	printf("float变量\n以%%f格式输入:"); 
	scanf("%f",&i);
	printf("以%%f格式输出:%f\n",i);
	printf("==============================\n");  
	//double型变量
	double j ; 
	printf("double变量\n以%%lf格式输入:"); 
	scanf("%lf",&j);
	printf("以%%lf格式输出:%lf\n",j);
}

【运行结果】

二、以不对应的格式输入时,有如下几种情况:

1.输入

float类型变量使用%lf格式输入,会导致输入值错误。

double 类型变量使用了%f格式输入,会导致输入值错误。

#include<Stdio.h>
int main(){
	//float型变量
	float i ;
	printf("float变量\n以%%lf格式输入:"); 
	scanf("%lf",&i);
	printf("以%%f格式输出:%f\n",i);
	printf("==============================\n");  
	//double型变量
	double j ; 
	printf("double变量\n以%%f格式输入:"); 
	scanf("%f",&j);
	printf("以%%lf格式输出:%lf\n",j);
}

【运行结果】


2.输出

float 类型变量使用%lf格式输出,没有问题。

double 类型变量使用了%f格式输出,没有问题。

#include<Stdio.h>
int main(){
	//float型变量
	float i ;
	printf("float变量\n以%%f格式输入:"); 
	scanf("%f",&i);
	printf("以%%lf格式输出:%lf\n",i);
	printf("==============================\n");  
	//double型变量
	double j ; 
	printf("double变量\n以%%lf格式输入:"); 
	scanf("%lf",&j);
	printf("以%%f格式输出:%f\n",j);
}


【运行结果】

【总结】

  • float型对应%f,double型对应%lf
  • 输入类型不对应,会导致程序运行错误;输出类型不对应,则没问题。

仅作参考,欢迎补充指正

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。