double和float的誤區!

2021-08-27 08:11:36 字數 685 閱讀 5526

float是單精度型別,精度是8位有效數字,取值範圍是10的-38次方到10的38次方,float占用4個位元組的儲存空間

double是雙精度型別,精度是17位有效數字,取值範圍是10的-308次方到10的308次方,double占用8個位元組的儲存空間

當你不宣告的時候,預設小數都用double來表示,所以如果要用float的話,則應該在其後加上f

例如:float a=1.3;如圖:(如果我不加,編譯的時候就會報錯!)

則會提示不能將double轉化成float 這成為窄型轉化

如果要用float來修飾的話,則應該使用float a=1.3f

注意float是8位有效數字,第7位數字將會產生四捨五入

所以如果乙個float變數 這樣定義: float a=1.23456785; 則第7位將產生四捨五入(5以下的都將捨去)

double和float的區別

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

float和double儲存方式

在c c 中float是32位的,double是64位的,兩者在記憶體中的儲存方式和能夠表示的精度均不同,目前c c 編譯器標準都遵照ieee制定的浮點數表示法來進行float,double運算。無論是float還是double,在記憶體中的儲存主要分成三部分,分別是 1 符號位 sign 0代表正...

float和double 精度分析

結論 1.範圍 float和double的範圍是由指數的位數來決定的。float的指數字有8位,而double的指數字有11位,分布如下 float 1bit 符號位 8bits 指數字 23bits 尾數字 double 1bit 符號位 11bits 指數字 52bits 尾數字 於是,floa...