為啥a分別用int和double定義結(jié)果不同
#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èi)%f\n",sum);
? ? return 0;
}
2016-02-23
C中沒有四舍五入的說法,而是歸零法。比如2.3強(qiáng)制化為整數(shù)后是2,而2.9強(qiáng)制化為整數(shù)之后也是2.
2016-02-22
double是雙精度浮點型,要求小數(shù)點后精確位數(shù)更多;而int是整型,因而二者在保留小數(shù)位數(shù)不同的情況下(如四舍五入)結(jié)果不同