问答详情
源自:5-14 综合练习

为啥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;

}


提问者:慕虎7192974 2016-02-21 21:24

个回答

  • 学个不停
    2016-02-23 14:51:01
    已采纳

    C中没有四舍五入的说法,而是归零法。比如2.3强制化为整数后是2,而2.9强制化为整数之后也是2.

  • swr
    2016-02-22 09:40:46

    double是双精度浮点型,要求小数点后精确位数更多;而int是整型,因而二者在保留小数位数不同的情况下(如四舍五入)结果不同