用double定义的函数输出时可以以%f的形式输出嘛
或者说这样输出的结果正确吗
有啥影响不
用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;
}
结果:
lf形式:
结果:
综上所示,在VS2012中是没有影响的(但是如果需要求高精度的话,那还是需要使用double类型,它的精度比float要高,也就是输出需要用lf!)