作者cooljony0109 (肥子民)
看板Programming
標題[問題] +0.5 變成 +1
時間Thu Apr 29 17:01:43 2010
各位大大
今天學長被這個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
→ MOONRAKER:a的有效數字達八位 其實算是超過了 59.120.168.228 04/29 19:09
推 yoco315:你學長竟然有 overloading operator && ()118.160.111.220 04/29 22:19
推 COLDTURNIP:推樓上的笑點 XD 118.166.67.248 04/30 00:45
推 LPH66:其實因為高位是1的關係 這裡正好用完24bit 140.112.24.133 04/30 00:50
→ cooljony0109:原來如此~謝謝各位神手T^T 163.13.127.179 05/01 16:47