float和double輸入的區別

2021-10-24 02:57:38 字數 631 閱讀 8439

在printf函式中,輸出float和double型別的資料,使用%f格式輸出。但是,在scanf函式中,讀取輸入float和double型別的資料時,需要注意:

(1) float型別資料,使用 %f 格式輸入;

(2) double型別資料,使用 %lf格式輸入;在%和f之間新增字母「l」;

程式測試例子如下:

程式執行結果如下:

可以看到,在編譯的時候,就已經提示「warning 警告」:第12行**,即:

scanf("%f", &b);

第二個引數b是double型別,但是,格式控制輸入字串使用『%f』表示float型別,所以,提示警告。 輸入資料的時候,float型別,使用%f格式輸入。double型別,應該使用%lf格式輸入。

那麼,我們在輸入資料的時候,也可以看到,在第二次輸入時,輸入1.2,輸出0.000000,執行出錯了。所以,給double型別變數輸入資料的時候,必須使用%lf格式,輸出的時候,可以使用%f格式。

C語言float和double輸入問題

統計給定的n個數中,負數 零和正數的個數。input 輸入資料有多組,每組佔一行,每行的第乙個數是整數n n 100 表示需要統計的數值的個數,然後是n個實數 如果n 0,則表示輸入結束,該行不做處理。output 對於每組輸入資料,輸出一行a,b和c,分別表示給定的資料中負數 零和正數的個數。sa...

double和float的區別

float a 0.1 編譯器報錯 warning c4305 initializing truncation from const double to float 原因 在c c 中 也不知道是不是就在vc 中這樣 上述語句等號右邊0.1,我們以為它是個float,但是編譯器卻把它認為是個doub...

double和float的誤區!

float是單精度型別,精度是8位有效數字,取值範圍是10的 38次方到10的38次方,float占用4個位元組的儲存空間 double是雙精度型別,精度是17位有效數字,取值範圍是10的 308次方到10的308次方,double占用8個位元組的儲存空間 當你不宣告的時候,預設小數都用double...