浮点类型float与double的区别及使用注意事项。

我用VS2019版本编写了一个如下小程序:
#include
#define PAI 3.14;//简单定义 pai为3.14
int main()
{
double banjing;
double jieguo;
printf(“请输入半径:\n”);
scanf_s("%1f", &banjing);
jieguo = banjing * banjing * PAI;
printf(“圆的面积为:%1f\n”, jieguo);
return 0;
}
计算结果得:
请输入半径:
6
圆的面积为:26901260421762919999986377733402633192280392755927498260913967680148
538602813352667741501012240931819614942701978509979418624.000000
最终原因确定:

%f和%lf分别是float类型和double类型用于格式化输入输出时对应的格式符号。
其中:
float,单精度浮点型,对应%f.
double,双精度浮点型,对应%lf.
在用于输出时:
float类型可以使用%lf格式,但不会有任何好处。
double类型如果使用了%f格式可能会导致输出错误。
在用于输入时:
double 类型使用了%f格式,会导致输入值错误。
float类型使用double类型不仅会导致输入错误,还可能引起程序崩溃。
所以在输入输出时,一定要区分好double和float,而使用对应的格式符号。

你可能感兴趣的:(浮点类型float与double的区别及使用注意事项。)