[問題] 浮點數比較問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
浮點數因為有誤差,因此在做比較時會讓兩數相減後取絕對值
例如:
float a=0.0;
while(a != 1.0)
a+=0.1;
這個例子會有無窮迴圈
所以需要改成如下:
float a=0.0;
while(abs(a-1.0)<=0.001)
a+=0.1;
這樣才不會無窮迴圈
但是,0.001是如何決定?
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.77.239.19
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1455886728.A.EDA.html
推
02/19 21:15, , 1F
02/19 21:15, 1F
推
02/19 21:25, , 2F
02/19 21:25, 2F
推
02/19 21:52, , 3F
02/19 21:52, 3F
→
02/19 21:53, , 4F
02/19 21:53, 4F
→
02/19 21:54, , 5F
02/19 21:54, 5F
→
02/19 21:54, , 6F
02/19 21:54, 6F
→
02/19 21:55, , 7F
02/19 21:55, 7F
推
02/19 21:58, , 8F
02/19 21:58, 8F
→
02/19 22:01, , 9F
02/19 22:01, 9F
→
02/20 21:06, , 10F
02/20 21:06, 10F
→
02/20 21:06, , 11F
02/20 21:06, 11F
討論串 (同標題文章)