為啥a分別用int和double定義結果不同
#include <stdio.h>
int main()
{
? ? double a,sum;
? ? int b,d,e; ? /*a是單價2.3;b是要走距離;e是打車距離;d是時間段;*/
? ? d=9;
? ? e=12;
? ? sum=13;
? ? a=2.3;
? ? if(e<=3)
? ? goto LOOP;
? ? if(d>=23||d<=5)
? ? ? ? a=a*1.2;
? ? for(b=3;b<=e;b++)
? ? {
? ? ? ??
? ? ? ? sum=sum+a;
? ? }
? ? LOOP:sum+=1;
? ? printf("車費%f\n",sum);
? ? return 0;
}
2016-02-23
C中沒有四舍五入的說法,而是歸零法。比如2.3強制化為整數后是2,而2.9強制化為整數之后也是2.
2016-02-22
double是雙精度浮點型,要求小數點后精確位數更多;而int是整型,因而二者在保留小數位數不同的情況下(如四舍五入)結果不同