用double定义的函数输出时可以以%f的形式输出嘛

用double定义的函数输出时可以以%f的形式输出嘛
或者说这样输出的结果正确吗
有啥影响不

img

scanf()输入时,输入格式%f对应变量类型必须是float类型,%lf对应变量类型必须是double类型
prinf()输出时,输出格式%f%lf都是对应double类型,如果参数类型是float,它会把自动把参数提升为double类型输出。
参考:
https://en.cppreference.com/w/c/io/fscanf
https://en.cppreference.com/w/c/io/fprintf

会有精度损失,double用%lf输出。

实践检验真知:
f形式:

#include <stdio.h>
#include<iostream>

int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    double c = (a+b)/2.0;
    printf("%f\n",c);
system("pause");
return 0;
}

结果:

img

lf形式:
结果:

img

综上所示,在VS2012中是没有影响的(但是如果需要求高精度的话,那还是需要使用double类型,它的精度比float要高,也就是输出需要用lf!)