作者wahaha99 (此方不可長)
看板C_and_CPP
標題Re: [問題] VC2008 這問題不知道該算什麼問題...
時間Thu Aug 5 23:03:49 2010
自問自答一下
跟朋友分析了很久以後
我推斷是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