为啥a分别用int和double定义结果不同

来源:5-14 综合练习

慕虎7192974

2016-02-21 21:24

#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;

}


写回答 关注

2回答

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

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

    慕虎7192...

    非常感谢!

    2016-02-25 09:52:53

    共 1 条回复 >

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

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

    慕虎7192...

    那应该是double更精确啊,但为什么int算下的和答案最相近呢?

    2016-02-22 10:05:52

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926024 学习 · 20793 问题

查看课程

相似问题