c語言f前面的數字為什麼要帶小數點

2021-05-28 19:14:57 字數 4478 閱讀 9625

1樓:騎著你狂奔的我

你定義的float是浮點小數的意思,電腦不能自己分辨是小數還是整數,需要說明。。。嚴重鄙視你的基礎知識。。。

c語言裡%f中間加數字是什麼意思

2樓:匿名使用者

%f是用於格式化輸入輸出函式,對應型別為float的格式字元。加數字的情況僅適用於輸出函式,比如printf。

其形式為

printf("%a.bf", var);

其中a,b為常數。

含義為:

1 a, 代表輸出佔|a|(a的絕對值)個位元組的寬度,當實際寬度超過a時,按實際寬度輸出,否則輸出a個位元組,不足部分補空格。

如果a為正數,輸出的有效數字在右側,左側補空格。

如果a為負數,輸出的有效數字在左側,右側補空格。

2 b,代表輸出帶有b位小數,不足部分補0。

a,b可單獨使用,比如

printf("%4f", 1.2); 會輸出一個空格加上1.2。

printf("%.3f", 1.2); 會輸出1.200。

printf("%-8.4f", 1.2); 會輸出1.2000再輸出兩個空格。

3樓:匿名使用者

比如%7.2f 點前面的7代表輸出的數的寬度,也就是位數~包括小數點後的數字;點後的2代表小數點後面的數字的個數;,一般只寫成%.2f,比如

float pi=3.1415

printf("%.2f",pi)

輸出結果為3.14

參考

4樓:多啦

以浮點資料格式輸出,加數字就是表示輸出浮點資料小數點後的位數

請採納答案,支援我一下。

5樓:匿名使用者

這是為了說明輸出小數的格式。12.9的意思就是佔12個格,其中小數部分佔9格。

c語言中%f表示的是什麼,為什麼有時小數點後保留6位,有時小數點後保留1位

6樓:匿名使用者

printf("%f", fval ); //這是浮點預設輸出格式,小數點保留6位

printf("%.1f", fval ); //.1是說明,小數點保留1位,對其後的

資料進行四捨五入

printf("%.2f", fval ); //.2是說明,小數點保留2位,對其後的資料進行四捨五入,你想保留幾位,就用點幾

printf("%10f", fval ); //輸出寬度為10個字元,右對齊,前補空格,小數點保留6位

printf("%10.2f", fval ); //輸出寬度為10個字元,右對齊,前補空格,小數點保留2位

7樓:匿名使用者

printf("%.mf",fval)的舍入這裡,有個巨大的誤區,不是四捨五入,它採用的是四捨六入五成雙規則,詳情各位可參考百科。

四捨六入無成雙網頁連結

數值修約網頁連結

c語言中,為什麼%f中,要加小數點和0才能輸出數值?

8樓:匿名使用者

3/4 會自動認為二者都是int型,所以做的是整數除法:3/4為0餘3,餘數捨去於是為0

而3.0會認為是浮點型,於是4被自動型別轉換為浮點型做浮點除法

9樓:匿名使用者

同意樓上,樓主不信的話可以int a = 3/4; 看看結果是不是0,f%只是按照規定的格式輸出而已

c語言中%f中間加小數是什麼意思?如%7.2f

10樓:匿名使用者

表示最大場寬m,小數位為n位,整數位則為m-n-1位,夠m位右對齊。

%7.2f 表示輸出場寬為7的浮點數, 其中小數位為2,整數位為4,小數點佔一位,不夠9位右對齊

11樓:白了少

7.2是輸出控制,輸出7位,不滿7位用空格代替,超過7位這個7無效.

.2是輸出兩位小數.

c語言中一個數的小數如何表示

12樓:匿名使用者

4.2用c語言表示:double d = 4.2。c語言中用於描述小數的資料型別是float和double,float型別表示單精度浮點數,double表示雙精度浮點數。

1、float:

float 資料型別用於儲存單精度浮點數或雙精度浮點數。浮點型別的單精度值具有 4 個位元組,包括一個符號位、一個 8 位 excess-127 二進位制指數和一個 23 位尾數。

2、double:

double(雙精度浮點數)使用 64 位(8位元組) 來儲存一個浮點數。 它可以表示十進位制的15或16位有效數字。

擴充套件資料

(1) 浮點型與整型

將浮點數(單雙精度)轉換為整數時,將捨棄浮點數的小數部分, 只保留整數部分。將整型值賦給浮點型變數,數值不變,只將形式改為浮點形式, 即小數點後帶若干個0。注意:

賦值時的型別轉換實際上是強制的。

(2) 單、雙精度浮點型

由於c語言中的浮點值總是用雙精度表示的,所以float 型資料只是在尾部加0延長為double型資料參加運算,然後直接賦值。double型資料轉換為float型時,通過截尾數來實現,截斷前要進行四捨五入操作。

13樓:blackpink_羅捷

兩種表示

方式:1、定點表示:必須有小數點。

例如:0.123, .123, 123.0。

2、指數表示:e或e之前必須有數字,指數必須為整數。

例如:12.3e3 ,123e2, 1.23e4。

注意:浮點數常量預設為double型別,如果浮點數常量表示float型別,在末尾新增小寫的f或者大寫的f,表示此常量為單精度浮點常量。

定點小數是純小數,約定的小數點位置在符號位之後、有效數值部分最高位之前。若資料x的形式為x=x0.x1x2...xn(其中x0為符號位,x1~xn是數值的有效部分,也稱為尾數,x1為最高有效位),則在計算機中的表示形式為:

一般說來,如果最末位xn= 1,前面各位都為0,則數的絕對值最小,即|x|min= 2^(-n)。如果各位均為1,則數的絕對值最大,即|x|max=1-2^(-n)。所以定點小數的表示範圍是:

2^(-n)≤|x|≤1 -2^(-n)。

擴充套件資料

由於「編碼總位數為8」的限制,真值-128無法用原碼、反碼來表示,似乎不能用上述規則來求解補碼,但實際上是可行的——只要不管它的最高位即可,操作辦法如下:

將128化為二進位制為:1 0000000,最高位為1,可以只對捨去最高位後剩餘的7位進行處理即可,首先取反得:1111111,加1得:

1 0000000,最高位有進位需丟棄,即得:0000000,加上符號位就得補碼:1 0000000。

又如,當編碼總位數為4時,真值x=+0.101的原碼、反碼、補碼均為:0 101。

真值x=-0.101的原碼、反碼、補碼依次為:1 101、1 010、1 011。

同理,特例,-1的補碼為:1 000。

在定點小數中,小數點隱含在第一位編碼和第二位編碼之間

定點小數,是指小數點準確固定在資料某個位置上的小數,從實用角度看,都把小數點固定在最高資料位的左邊,小數點前邊再設一位符號位。按此規則,任何一個小數都可以被寫成 :n = ns .

n-1 n-2 ... n-m。

14樓:

我想你的意思是這樣的,a變數為浮點型資料(4.2),想得知其小數部分。

不知道是不是呢?

如果是的話,那麼:

float b = a-(int)(a);

15樓:匿名使用者

c語言中用於描述小數的資料型別是float和double,float型別表示單精度浮點數,double表示雙精度浮點數。

c語言中浮點數常量有兩種表示方式:

1、定點表示:(必須有小數點) 如:0.123, .123, 123.0。

2、指數表示:(e或e之前必須有數字,指數必須為整數)如:12.3e3 ,123e2, 1.23e4。

錯誤的寫法:e-5 ,1.2e-3.5,e3。

注意:浮點數常量預設為double型別,如果浮點數常量表示float型別,請在末尾新增小寫的f或者大寫的f,表示此常量為單精度浮點常量。

float f1 = 1.1f; //小寫f

float f2 = 1.1f; //大寫f

double d = 1.1; //double型別

16樓:中國中醫拔罐器

好像有什麼函式吧。

不過一般的思路都是。

double d=4.2;

double m;

m=d-int(d);

printf("m=%0.1f",m ) //要幾位就零點幾位。

求助C語言,連結串列輸出正確結果的前面為什麼多了

看你的太麻煩 這是我以前做的 你看看 比你的那個要完善 include stdio.h include malloc.h include stdlib.h typedef struct node node,pnode pnode creste lise void 建立一個非迴圈單連結串列 void ...

c語言後定義函式前面在函式原型中為什麼要加

傳遞引數為陣列或者指標。形參都是以指標形式表示。你的例,第一個引數的實參為int型,第二個的實參可以是int陣列名 第一元素地址 int型指標 指標的值就是地址 int值的地址 x int 是一個型別 就好比如char也是一個型別。double也是一個型別。int型別 int 型別這是兩個型別 加 ...

c 裡面的應用符號為什麼有的在變數名前面,有的在後面?有什麼區別

sales item operator const sales item const sales item sales item是型別。是 函式的宣告 可以寫成 專,屬 兩種寫法一樣的 你確認sales item是一個變數名麼。可以作為引用宣告符宣告一個引用。也是運算子,一元的 獲得指向運算元的指標...