⑴ c語言合法浮點數表示,如何判斷是不是合法的謝謝 詳細的
既然是浮點數,那麼這個數字中僅含有一個或多個阿拉伯數字、一個小數點,還有就是英文字母e(或E)。下面舉幾個例子。
2.35、.65、0.1、1e-3、1.0E+3(要注意的是階碼e(E)後面的+、-的前後不能有空格)
⑵ C語言中單精度和雙精度浮點型數據的數值范圍是多少怎麼算出來的請大蝦幫忙了!
今天看書也是發現了這個問題但是網路一番網上並沒有想要的答案,思索後得出結果,首先浮點型是32位精度 有一個符號位8個指數位23個尾數位
關於精度的計算單精度8位階碼,1位符號,剩下23位尾數,算出2的負23次方,得到0.00000011920928955078125
前面0有多少個,就表示能精確到那一位,所以精度為6提供七位有效數字
雙精度11位階碼,1位符號,剩下52位尾數,算出2的負52次方,得到0.
所以精度為15,提供16位有效數字。
然後關於范圍的計算:范圍是指數位控制的,指數位為8,有效為為7(這里涉及到余碼,有興趣的同學可以查看相關資料)所以最大范圍為2^7=128 這里是指數部分 化為十進制則為
2^128=3.402823669384635E38
所以范圍為3.4E-38~3.4E+38
double同理
⑶ C語言中的浮點值是什麼意思
就是常說的小數,浮點是意思就是數字中有個漂浮的點,這個點就是常說的小數點。
1、C語言中均支持兩種浮點數,float和double。
其中double的精度,和表示範圍比float要大。
另外,部分編譯器支持更大精度的long double,但不是所有的編譯器都支持。
以上為三種浮點數的類型。在定義的時候,需要以
TYPE var=init_value;
的方式定義,功能為定義一個名字為var,類型為TYPE的變數,並賦值初始值為init_value。
其中=init_value部分可以省略。
2、比如定義一個float類型的浮點變數為
float f;
定義一個類型為double的浮點型變數,並初始化值為1.234,寫作
double d = 1.234;
⑷ C語言浮點型小數點後為多少位
單精度浮點型小數點後面有效數字為7位和雙精度浮點型小數點後面有效數字為16位。
單精度在一些處理器上比雙精度更快而且只佔用雙精度一半的空間,但是當值很大或很小的時候,它將變得不精確。當需要小數部分並且對精度的要求不高時,單精度浮點型的變數是有用的。
例如,當表示美元和分時,單精度浮點型是有用的。在foxpro中,單精度浮點型是為了提供兼容性,浮點數據類型在功能上等價於數值型。
(4)c語言浮點數和尾數擴展閱讀:
浮點數是屬於有理數中某特定子集的數的數字表示,在計算機中用以近似表示任意某個實數。具體的說,這個實數由一個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似於基數為10的科學計數法。
浮點數參與的運算,這種運算通常伴隨著因為無法精確表示而進行的近似或舍入。補碼系統的0就只有一個表示方式,這點和反碼系統不同(在反碼系統中,0有二種表示方式),因此在判斷數字是否為0時,只要比較一次即可。
⑸ c語言浮點數相關問題
內存中浮點數都用二進製表示,二進制小數不是你理解那種到n位截斷,這不是十進制,沒法按照十進制數那種方式截斷。
四捨五入只是碰巧,這里沒有截斷到3.142機制還比較特殊
⑹ C語言中float是什麼類型
C語言中float是:單精度浮點型數據類型。
浮點型數據類型,FLOAT 數據類型用於存儲單精度浮點數或雙精度浮點數。浮點數使用IEEE(電氣和電子工程師協會)格式。浮點類型的單精度值具有 4 個位元組,包括一個符號位、一個 8 位 二進制指數和一個 23 位尾數。
由於尾數的高順序位始終為 1,因此它不是以數字形式存儲的。此表示形式為 float 類型提供了一個大約在 -3.4E+38 ~ 3.4E+38 之間的范圍。
應用經驗:
float浮點數兩個浮點數不相等和精度的問題,在實際開發中,經常用整數代替浮點數,因為整數是精確的,效率也更高。
例如人的身高一米七五,以米為單位,用浮點數表示是1.75米,如果以厘米為單位,用整數表示是175。
在 C 和 C++ 中,如下賦值語句:
floata=0.1;編譯器報錯:warning C4305: 'initializing' : truncation from 'const double ' to 'float '
原因:在 C/C++ 中,上述語句等號右邊 0.1,認為是個 float,但是編譯器卻把它認為是個 double(因為小數默認是 double),所以要報這個 warning,一般改成0.1f就沒事了。
以上內容參考:網路-FLOAT
⑺ 在c語言中,單精度浮點數與雙精度浮點數的區別與聯系。
在C語言中,單精度浮點數(float)和雙精度浮點數(double)類型都是用來儲存實數的,雙精度是用記憶較多,有效數字較多,數值范圍較大。兩種類型對應的格式字元也有不同。 以Turbo C 為例: float 單精度浮點數使用記憶:4 字元(32 位元)有效數字:6-7 位數值范圍:�6�13.4e38 至 �6�13.4e�6�138、0、3.4e�6�138 至 3.4e38格式字元:%f %e %g double 雙精度浮點數使用記憶:8 字元(64 位元)有效數字:15-16 位數值范圍:�6�11.7e308 至 �6�11.7e�6�1308、0、1.7e�6�1308 至 1.7e308格式字元:%lf %le %lg (輸入時格式字元串不加 l 會出錯,輸出時仍可用 %f %e %g) 其他系統大同小異,只是實際數值可能有點不同。 兩種類型可以互相賦值,只是 double 型賦給 float 型的時候有可能在數值范圍外。兩種類型混合計算的時候自動換為 double 型計算。
⑻ C語言 浮點數的階碼和尾數的長度是有限制的,超過的部分該如何處理會有什麼影響
超過的部分會被丟棄。
階碼超出的話,就溢出錯誤了,上溢的話程序就不能運算了;下溢的話,數據就從非0變成0了。有時會造成原則的錯誤(如除以0出錯、求0的對數等等),有時則不造成嚴重的影響。
尾數超出的部分捨去, 這個就是平常所說實數處理的誤差問題或精度問題。舉個最簡單的例子:1/10即0.1,在二進制下就無法准確地表示出來。(在二進制下,它是一個無限循環小數)
⑼ C語言中,浮點類型和整數類型的區別具體在哪些方面
1、包含類型方面的區別:
整數類型包含byte型、int型、short型、long型, 浮點類型包含float(單精度)型、double常量
2、取值范圍的區別:我們可以看到整數類型最大的取值是:1,844,674,407,370,955,161,共有19位數。而浮點數中float的取值范圍就有39位數3.4E+38。
3、精度的區別:整數類型是一個准確的數值,而浮點數很多時候是一個看似值。比如float類型就只用確保前面6~7位是准確的。如:float f = 123456789; //8和9這兩個數值就可能是不準確的。
(9)c語言浮點數和尾數擴展閱讀:
C語言其他數據類型:
一、基本類型
1、整形類型:int ,short int,long int,long long int(C99),char,bool
2、浮點類型:float ,double,雙精度浮點型(float_complex,double_complex,long long_comples)
二、枚舉類型 enum
三、空類型 void
四、派生類型
指針類型 *、數組類型 、結構體類型 struct、共用體類型 union、函數類型
參考資料來源:網路—數據類型
⑽ 在C語言中的實型變數分為float型和double型,按浮點數進行存儲,分為數符、_______和尾數幾部分。
在c語言中的實型變數分為float型和double型,按浮點數進行存儲,分為數符、階碼
和
尾數
幾部分