作者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
2F:→ MOONRAKER:a的有效数字达八位 其实算是超过了 59.120.168.228 04/29 19:09
3F:推 yoco315:你学长竟然有 overloading operator && ()118.160.111.220 04/29 22:19
4F:推 COLDTURNIP:推楼上的笑点 XD 118.166.67.248 04/30 00:45
5F:推 LPH66:其实因为高位是1的关系 这里正好用完24bit 140.112.24.133 04/30 00:50
6F:→ cooljony0109:原来如此~谢谢各位神手T^T 163.13.127.179 05/01 16:47