[問題] double變數不精確?

看板C_and_CPP (C/C++)作者 (雞卷)時間16年前 (2010/05/13 16:27), 編輯推噓4(407)
留言11則, 5人參與, 最新討論串1/1
double dA = 0.99; double dB = 0.01; 程式中沒有對dA做任何動作,但是我之後用到dA時,下中斷去看, dA會變成 0.00989999999999999999999999 這樣 dB則是類似 0.99000001 請問這是甚麼問題產生的呢? -- 每個身高不夠的禁區悍將 都有一個超級偶像 那就是Charles Barkley -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.249.2.10

05/13 16:28, , 1F
就是精確度問題囉 機器的限制
05/13 16:28, 1F

05/13 16:39, , 2F
如果要這麼準確的話 就用整數去模擬吧
05/13 16:39, 2F

05/13 16:42, , 3F
十二誡第十二條
05/13 16:42, 3F

05/13 16:43, , 4F
我覺得現在的 C 語言老師真的應該教資料型態的時候叫學生
05/13 16:43, 4F

05/13 16:43, , 5F
順便用 debugger 去看看裡面的東西。
05/13 16:43, 5F

05/13 16:44, , 6F
特別是比較 debugger 印出來的值跟 printf 輸出的差異。
05/13 16:44, 6F

05/13 16:46, , 7F
我們以前計組老師教IEEE754的時候, 除了考試直接出題叫
05/13 16:46, 7F

05/13 16:47, , 8F
我們換算, 還要我們自己寫程式讀char string進來, 然後
05/13 16:47, 8F

05/13 16:47, , 9F
自己寫code ASCII=>Digit, 然後自己拼回IEEE754的float
05/13 16:47, 9F

05/13 16:47, , 10F
bit layout....Q_Q~
05/13 16:47, 10F

05/13 16:48, , 11F
另外, 原po的dA和dB似乎打反了....XD
05/13 16:48, 11F
文章代碼(AID): #1BwxVlx4 (C_and_CPP)
文章代碼(AID): #1BwxVlx4 (C_and_CPP)