當前位置:首頁 » 編程語言 » c語言中不能用浮點型嗎
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中不能用浮點型嗎

發布時間: 2022-10-06 23:27:54

c語言中說的浮點型是什麼意思呢

就是這個數就像有一個飄動的小數點,也就是我們學數學中說的科學計數法。

它由階碼和尾碼組成,也就是科學計數法中說的有效數字和指數組成, 類似這樣 1.0*10^9,這樣這個數就是10億,我們只用記錄1和9這兩個關鍵數就可以表示10億,所佔空間小隻有2個數,如果寫成普通的數就是100000000,這樣你就需要記錄1個1和9個0,占據空間大,這種數的小數點不是飄動的,所以叫定點數不叫浮點數,需要記錄小數點向前向後的所有數,佔用空間和有效數字個數無關,和位數有關,會佔用更多空間,浮點數比較節省空間,用浮點數表示小數也非常好,所以計算機里的小數,和位數比較高的數都用浮點數,你不可能因為1億億+2億億也用int型。
浮點數就是科學計數法,不同的是計算機里是2進制浮點數,我們的1.3e-10這種類型的數是十進制的浮點數。

拓展資料

1.有符號整型在C語言中,有符號整形變數a用signed int a表示,通常我們寫的int a默認為有符號整型。

根據程序編譯器的不同,整形定義的位元組數不同。常用的單片機編譯器,如KEIL下,51類單片機的C語言中,int代表2個byte(16位);如果是32位ARM處理器的C語言中,則int代表4個byte(32位)。而不少PC端軟體的編譯器則會根據操作系統或處理器(如64位XP)把int定義為8 byte(64位),(如32位XP)把int定義為4 byte(32位)。

2.無符號整形

在C語言中,無符號整形變數b用unsigned int b表示。

在32位的xp系統中,對於無符號整形變數b, signed short int b,b為16位。

3、字元型

在 C語言中,字元c用char c表示,char在標准中是unsigned, 編譯器可以實現為帶符號的,也可以實現為不帶符號的。

在VC6.0及linux下char 范圍為[-128,127],如下

char a=127;

a=a+1; /*現在a的值為-128*/

unsigned char b=255;

b+=1; /*現在b的值為0*/

4、浮點型

浮點型包括單浮點型float,雙浮點型double,浮點型數據均為有符號型。

Ⅱ C語言中Switch(表達式) 中表達式不可以是浮點數。

浮點數使用對數形式保存的,所以要比較浮點數相等是不可能的。
a=0.1 0.2 0.3 0.4 0.5
int b;
可以這樣b=int(10*a);
swith(b)
{
case 10:
case 20:
}
但這種方法也不是很可行的, 因為對數指數互相轉換,0.200000000就可能變成了0.19999
假如
swith(a)
{
case b1: ... a++ break;
case b2: ... b++ break;
case b3: .... c++
default : .... d++;
}
改為while(1)
{
if(fabs(a-b1)<0.0000001) ...a++...break;
if(fabs(a-b2)<0.0000001) ...b++...break;
if(fabs(a-b2)<0.0000001) ...c++...;
d++;
break;
}

為什麼不直接用if,不用while
因為:用while後可以用break;提高效率,還可以基本實現
switch的功能;
記得在最後面加上break;就行了

Ⅲ 為什麼C語言中結構不能定義浮點類型,百思不解,痛苦中。。。。

這是C語言編譯的問題,可以外部定義 float score;

scanf("%f", &score );
再賦值
pArr->score=score;

Ⅳ C語言浮點型數的問題

根本原因是大多數十進制的小數無法轉換成精確的二進制小數,舉個例子:
二進制的0.1等於十進制的0.5
但是十進制的0.1是無法轉換成一個有限的二進制小數的,結果是一個無線循環的二進制小數:
1(2)/1010(2)=0.0001100110011001100......(2)

浮點變數對於任何數都是化成小數來表示的,比如9表示為:
1.001*10^3
我想樓主應該知道,浮點數的小數部分只能保存一定長度的數,如果現在假設有一個只能保存2位小數的浮點變數的話,那1.001就必須進行四捨五入了,照搬十進制數的四捨五入,如果下一位是1,則進一,是0則不進一,所以這個數就變成了1.01*10^3,化成整數是1010,就是十進制的10

Ⅳ 在C語言中為什麼循環中更新的變數不能定義成浮點型

可以定義成浮點型,例如:
main(){
float f;
for (f=0.1;f<3.0;f=f+0.1) printf("%g\n",f);
return 0;
}
輸出:
0.1
0.2
0.3
0.4
。。。。
2.8
2.9
3
-----------------
浮點型, 由於計算機表達十進制小數時有誤差,控制循環次數可能會有誤差,但也不一定。為保險起見,能用整型,則用整型。

Ⅵ C語言中說的浮點型是什麼意思呢

浮點型變數即為實型變數,代表實數;區別於代表整數的整形變數。

Ⅶ c語言錯哪了,是不是不能用float

根本不是float的鍋。

  1. 請把float a,b,c,d; 這一行刪掉

  2. char (grade); 這一行里的括弧可以去掉。

  3. 把scanf那一行改成 scanf("%c",&grade);

  4. 把printf裡面的四個%c統統改成

Ⅷ c語言非法使用浮點數

取余運算只能用於整數,而取余後的數也就是你用的a應該是整形,而你用了浮點型所以會錯

Ⅸ 關於c語言中如何定義浮點數

需要准備的材料分別有:電腦、C語言編譯器。

1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。