C语言精度损失

#include <stdio.h>

int fare(int n,int m)

{

    double money;

    if(5<=n<23)

    {

        if(m<=3)

        {

            money=14;

        }

        else

        {

            money=13+(m-3)*2.3+1;

        }

    }

    else

    {

        if(m<=3)

        {

            money=14;

        }

        else

        {

            money=13+(m-3)*2.3*1.2+1;

        }  

    }

    return money;

}

int main()

{

    int A= fare(9,12);

    int B=fare(18,12);

    printf("小明每天打车的总费用为%d\n",A+B);//当我把AB换成double时,结果是0

    return 0;

}

http://img.mukewang.com/5783aad400015de404810216.jpg

结果造成精度损失,应该怎么修改

秋刀红鱼
浏览 1771回答 1
1回答

木柘

printf("小明每天打车的总费用为%f\n",A+B); double类型你用%d输出?
打开App,查看更多内容
随时随地看视频慕课网APP