[問題] 浮點數運算好怪..

看板C_and_CPP (C/C++)作者 (無聊人)時間16年前 (2010/03/30 13:20), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串1/2 (看更多)
遇到的問題: 浮點數運算的問題(附code) 希望得到的正確結果:2 程式跑出來的錯誤結果:1.999999 開發平台:code blocks 有問題的code: #include<stdlib.h> #include<stdio.h> void main() { float a=2; float b=0.1; float c=2.1; printf("%f",(c-a)/b+1); printf("\n"); system("pause"); } 補充說明: 按照正常數學來算 答案應該是2呀..答案卻是1.999999.. 如果我把c改成2.2..答案又正確了是3.. 請問這是為甚麼呢?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.212.141

03/30 13:26, , 1F
置底文第12誡
03/30 13:26, 1F

03/30 13:39, , 2F
十二、使用浮點數千萬要注意精確度所造成的誤差問題
03/30 13:39, 2F

03/30 13:45, , 3F
所以說要把float改用double @@ 感恩
03/30 13:45, 3F

03/30 13:49, , 4F
建議你把第十二誡冼老師的網站再從頭到尾看仔細....
03/30 13:49, 4F

03/30 13:50, , 5F
這不是換double就完全解決的問題....
03/30 13:50, 5F

03/30 13:54, , 6F
好的..感謝樓上的建議!!
03/30 13:54, 6F

03/30 14:14, , 7F
換成 double.... (被打敗)
03/30 14:14, 7F

03/30 14:24, , 8F
因為我換成double就變成2了咩~~(逃)
03/30 14:24, 8F

03/30 14:25, , 9F
其實我沒有要做什麼很複雜的運算啦 @@ 只要功能有正常就好囉
03/30 14:25, 9F
文章代碼(AID): #1BiOevaw (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1BiOevaw (C_and_CPP)