回覆列表
-
1 # 錢布斯
相關內容
- 萌新求教,c語言float和double哪個算得快?
- C語言中什麼時候用float定義,什麼時候用double定義?
- c語言float與double的取值區別?
- 計算機c語言中float和double有什麼區別?
- c語言中int,float和char之間的關係是什麼?
- 用C語言編寫程式,將字元陣列中的指定字元替換為另一個字元?
- C語言程式設計題:從鍵盤輸入一串字元,統計其中的數字與字母個數並輸出?
- c語言設計一個折中查詢的程式,驗證一個字元是否在此字串中?
- C語言程式設計實現:輸入10個學生的名字(不超過20個字元),按名字降序排序輸出?
- c語言:一個字串,輸入一個字元,編寫函式dstr將輸入的字元從字串中刪去。要求能調通?
預設就會轉換
型別 位元數 有效數字 數值範圍
float 32 6-7 -3.4*10(-38)~3.4*10(38)
double 64 15-16 -1.7*10(-308)~1.7*10(308)
long double 128 18-19 -1.2*10(-4932)~1.2*10(4932)
簡單來說,Float為單精度,記憶體中佔4個位元組,有效數位是7位(因為有正負,所以不是8位),在我的電腦且VC++6.0平臺中預設顯示是6位有效數字;double為雙精度,佔8個位元組,有效數位是16位,但在我的電腦且VC++6.0平臺中預設顯示同樣是6位有效數字(見我的double_float檔案)
還有,有個例子:在C和C++中,如下賦值語句
float a=0.1;
編譯器報錯:warning C4305: "initializing" : truncation from "const double " to "float "
原因:
在C/C++中(也不知道是不是就在VC++中這樣),上述語句等號右邊0.1,我們以為它是個float,但是編譯器卻把它認為是個double(因為小數預設是double),所以要報這個warning,一般改成0.1f就沒事了。
通常的做法,經常使用double,而不喜歡使用float。