[問題] C語言新手問題
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
float sum = 0;
for (float d=0.1f;d<=1.0f;d+=0.1f)
sum+=d;
double sum = 0;
for (double d=0.1;d<=1.0;d+=0.1)
sum+=d;
兩個loop是用來計算0.1+0.2+...+1.0
第一個loop跑出4.5
另一個是5.5
我想問為啥第一個是4.5???
是我哪裡觀念弄錯了??
難道0.9f+0.1f <= 1.0f 這是錯的??
有請高手解答一下
希望得到的正確結果:
程式跑出來的錯誤結果:
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
vc++
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.11.225.31
→
07/29 23:53, , 1F
07/29 23:53, 1F
→
07/30 00:22, , 2F
07/30 00:22, 2F
推
08/01 23:27, , 3F
08/01 23:27, 3F
→
08/16 10:46, , 4F
08/16 10:46, 4F