[問題] +0.5 變成 +1

看板Programming作者 (肥子民)時間15年前 (2010/04/29 17:01), 編輯推噓4(402)
留言6則, 5人參與, 最新討論串1/2 (看更多)
各位大大 今天學長被這個BUG 卡了一個下午 如下 //-------------------- JAVA 版本 float a = 16253187; a += 0.5; System.out.print(a); //答案 : 1.6253188E7 //-------------------- BCB 6.0 版本 float a = 16253187; a += 0.5; printf(a); //答案 : 16253188 //-------------------- 不論是哪個版本他都會變成 +1 如果把 a 改成 double 就維持 + 0.5 請問這個是什麼問題? 應該還沒有超過 float 的表示範圍吧!? 救救我學長 && 我吧>.<" 謝謝 -- Q ▆▆ 倫家只有聽過葉問~ S ≡◥? 這是需要洨問的!   W ◤□︵□ ╱ ̄ ̄ ̄╲ E w │>  <│ E │(======)│ T ●~ ★沒有好康★ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.13.127.179

04/29 17:45, , 1F
04/29 17:45, 1F

04/29 19:09, , 2F
a的有效數字達八位 其實算是超過了
04/29 19:09, 2F

04/29 22:19, , 3F
你學長竟然有 overloading operator && ()
04/29 22:19, 3F

04/30 00:45, , 4F
推樓上的笑點 XD
04/30 00:45, 4F

04/30 00:50, , 5F
其實因為高位是1的關係 這裡正好用完24bit
04/30 00:50, 5F

05/01 16:47, , 6F
原來如此~謝謝各位神手T^T
05/01 16:47, 6F
文章代碼(AID): #1BsKh_NI (Programming)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 2 篇):
文章代碼(AID): #1BsKh_NI (Programming)