我用VS2019版本撰寫了一個如下小程式:
#include<stdio.h>
#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
小白請教各位老師,這什么情況???
uj5u.com熱心網友回復:
你好像把%lf打成了1fuj5u.com熱心網友回復:
還真是來,我一直認為是%11111f來,謝謝!~%f和%lf分別是float型別和double型別用于格式化輸入輸出時對應的格式符號。
其中:
float,單精度浮點型,對應%f.
double,雙精度浮點型,對應%lf.
在用于輸出時:
float型別可以使用%lf格式,但不會有任何好處。
double型別如果使用了%f格式可能會導致輸出錯誤。
在用于輸入時:
double 型別使用了%f格式,會導致輸入值錯誤。
float型別使用double型別不僅會導致輸入錯誤,還可能引起程式崩潰。
所以在輸入輸出時,一定要區分好double和float,而使用對應的格式符號。
uj5u.com熱心網友回復:
不客氣,剛開始我也出過這樣的問題,書上印刷傻傻分不清
,我也是新手,沒事到csdn上逛逛挺有益處的
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/148829.html
標籤:C語言
上一篇:作業系統
