float a;
a=1023.00006103515625;//整數部分2^10-1,小數部分2^-14
//a=2047.0001220703125;//整數部分2^11-1,小數部分2^-13
//a=4095.000244140625;//整數部分2^12-1,小數部分2^-12
//a=8191.00048828125;//整數部分2^13-1,小數部分2^-11
//a=16383.0009765625;//整數部分2^14-1,小數部分2^-10
//a=32767.00153125;//整數部分2^15-1,小數部分2^-9
//a=65535.00390625;//整數部分2^16-1,小數部分2^-8
//a=131071.0078125;//整數部分2^17-1,小數部分2^-7
//a=262143.015625;//整數部分2^18-1,小數部分2^-6
//a=524287.03125;//整數部分2^19-1,小數部分2^-5
//a=1046575.0625;//整數部分2^20-1,小數部分2^-4
//a=2097151.125;//整數部分2^21-1,小數部分2^-3
//a=4194303.75;//整數部分2^22-1,小數部分2^-2
//a=-8388607.5;//整數部分2^23-1,小數部分2^-1
a=3.4028234692093846346337460743176e+38;//整數部分2^128
printf("%.16fn",a);//若上面的float整數部分+1,則顯示時將忽略小數部分,將損失小數精度
//32位雙字儲存:首位為符號位s,0為正1為負;後8位為指數e,底數為2;最後23位為尾數m
// address+0 address+1 address+2 address+3
//contents seee eeee emmm mmmm mmmm mmmm mmmm mmmm
//其數值大小即為x=((-1)^s)*m*(2^e)
//因此有小數部分時,float的整數二進位制位與小數二進位制位和為23;
//沒有小數部分時,float的整數範圍可達到2^128即3.4028236692093846346337460743177e+38
計算出的多小數字的數值控制小數字的方法
計算出的多小數字的數值控制小數字的方法 例 如圖 1 直接在計算出的結果中進行處理,用round函式,保留n位,四捨五入 decimal zsl convert.todecimal zj zperg convert.todecimal sj decimal sl1 zsl fsl kgperm de...
C 學習 float與double的範圍和精度
float和double的範圍是由指數的位數來決定的。float的指數字有8位,而double的指數字有11位,分布如下 float 1bit 符號位 8bits 指數字 23bits 尾數字 double 1bit 符號位 11bits 指數字 52bits 尾數字 於是,float的指數範圍為 ...
分數字置(模擬除法 求小數字上的數值)
7 5 分數字置 15 分 輸入在一行中給出3個正整數a,b,c 1 a b 10 5 0 c 9 輸出數字c在分數中第一次出現的位置。小數點後的位置從1開始編號,如果它沒有這樣的位置,輸出 1。1 2 022 3 7 1提示,對於第乙個樣例,0出現在 2 1 十進位制形式的小數點後面第2位。對於第...