[問題] 請問在C++中float的儲存值
遇到的問題: (題意請描述清楚)
我在"C++程式設計(2/e), 張耀仁"中看到
---------------------------------------------
C++指令 在電腦內部實際的儲存值
---------------------------------------------
float a=0.1; 0.10000000149011611938...
double b=0.1; 0.10000000000000005555...
float c=0.01; 0.00999999977648258209...
double d=0.01; 0.01000000000000000021...
----------------------------------------------
不懂為什麼實際儲存的值會是這樣?@@"
C++中 符點數的記錄方式不是儲存指數跟尾數嗎?
e.g, 0.1 = 1 X 10^-1, 指數=-1, 尾數=1
float type的話 24 bits for 尾數, 8 bits for 指數
所以在我的認知中會以這樣的方式儲存起來:
000000000000000000000001 11111111
(尾數=1) (指數=-1)
如果是這樣的話
電腦不是可以很精確的知道是0.1嗎?
為什麼會有上表中的誤差呢?@@"
問題很爛的話請原諒我是個初學者
麻煩高手指點了
感恩^^"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.167.135.1
※ 編輯: cloudlim 來自: 118.167.135.1 (03/13 00:25)
推
03/13 00:30, , 1F
03/13 00:30, 1F
→
03/13 00:30, , 2F
03/13 00:30, 2F
→
03/13 00:40, , 3F
03/13 00:40, 3F
→
03/13 00:44, , 4F
03/13 00:44, 4F
→
03/13 03:18, , 5F
03/13 03:18, 5F
→
03/13 03:18, , 6F
03/13 03:18, 6F
→
03/13 06:57, , 7F
03/13 06:57, 7F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章