[問題] 數字計算問題

看板C_and_CPP (C/C++)作者 (strayer)時間15年前 (2011/07/13 10:41), 編輯推噓0(006)
留言6則, 4人參與, 最新討論串1/1
開發平台(Platform): G++, Linux 問題(Question): cout<< 1.015*1000 - 1015<<endl; 為什麼會秀出-1.13687e-013 其它數字像1.014 1.016答案都是正常為 0 餵入的資料(Input): 預期的正確結果(Expected Output): 0 錯誤結果(Wrong Output): -1.13687e-013 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.217.18 ※ 編輯: strayer101 來自: 140.113.217.18 (07/13 10:42)

07/13 10:43, , 1F
置底第十一戒,簡單來說浮點數並沒有那麼精確 
07/13 10:43, 1F

07/13 10:59, , 2F
謝謝樓上 那請問有辦法改善這個問題嗎??
07/13 10:59, 2F

07/13 11:02, , 3F
if ( (1.015*1000 - 1015) < 1e-10 ){return 0;}
07/13 11:02, 3F

07/13 11:07, , 4F
不加fabs嗎?
07/13 11:07, 4F

07/13 11:09, , 5F
沒考慮到負數,原po記得加入fabs喔!
07/13 11:09, 5F

07/13 11:11, , 6F
謝謝!!
07/13 11:11, 6F
文章代碼(AID): #1E7GNkgh (C_and_CPP)
文章代碼(AID): #1E7GNkgh (C_and_CPP)