在printf函数中%f和%lf有区别么,为何答案是一样的?
#include<stdio.h>main(){floata=9.1234567890;doubleb=9.1234567890;//printf("inputanumb...
#include<stdio.h>
main()
{
float a = 9.1234567890;
double b = 9.1234567890;
//printf("input a number:");
//scanf("%lf",&a);
printf("%lf %f\n",a,a);
printf("%lf %f\n",b,b);
return 0;
}
我知道在scanf函数中,%f和%lf要对应float和double,那在printf函数中呢,二者输出结果一样,可以理解为在printf函数中,二者无区别么?
float和double都可以用%f和%lf输出么?
%d和%ld之间也有类似的关系么? 展开
main()
{
float a = 9.1234567890;
double b = 9.1234567890;
//printf("input a number:");
//scanf("%lf",&a);
printf("%lf %f\n",a,a);
printf("%lf %f\n",b,b);
return 0;
}
我知道在scanf函数中,%f和%lf要对应float和double,那在printf函数中呢,二者输出结果一样,可以理解为在printf函数中,二者无区别么?
float和double都可以用%f和%lf输出么?
%d和%ld之间也有类似的关系么? 展开
4个回答
展开全部
不一样,如果b是double型的,其值如果大于float能表示的最大值,那么用%f输出b的时候就输出不正常,因为double型比float所占字节要多,其实就和把double强制转化为float可能丢失的道理一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实用printf输出无论用%f还是%lf都一样,输出精度的差别是由于数据本身类型造成的,例如用float定义了一个7位以上的数,无论是用%f还是%lf输出的有效位都是7位。而定义的double类型用%f和%lf输出有效位数都是16位。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
%lf和%f在小数点多的时候就有区别,l表示long,可以表示更多的位数,%d和%ld也是这样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |