看板 C_and_CPP 關於我們 聯絡資訊
自問自答一下 跟朋友分析了很久以後 我推斷是C語言的特性是 float 的意義是 "只是保證你的精度" 整個系統預設還是以double或是long double運作 所以最後火大整個印出來就可以用了 printf ( "%10.30f \n", workA[0]); <= 印出 0.99996948242187500... if (float(workA[0]) == 0.999969482421875) <= true 但實際上超過 float 的部分都是垃圾... ---- 有錯誤請指正........ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.126.29
loveme00835:浮點數預設是 double, 整數預設是 long, 遇到這種情況 08/05 23:26
loveme00835:常數後面還是加上 f 之類的符號告訴編譯器你想怎麼做 08/05 23:27
loveme00835:比較好。 08/05 23:27
nowar100:浮點數預設常數都是double(沒加f) 再看你要assign給float 08/05 23:28
nowar100:或double來決定他會不會截掉精度阿 08/05 23:28
tinlans:沒八卦,浮點常數預設就是 double。 08/05 23:29
wahaha99:啊...請搭配上一篇服用 08/06 00:08