猿问

请问为何我这个算出来是这样:68.00这么整数

题目:

北京市出租车打车计费规则如下:

1. 每公里单价计费2.3元

2. 起步价13元(包含3公里)

3. 晚上23点(含)至次日凌晨5点(不含)打车,每公里单价计费加收20%。

4. 每次乘车加收1元钱的燃油附加税。

小明每天上下班都要打车,公司和家的距离为12公里,上午上班时间为9点,下午下班时间为6点。

请编写一个小程序计算小明每天打车的总费用。

 

代码:

#include <stdio.h>

int money(float m,float t){

    float sum;


    if((t<24&&t>=23)||(t>=0&&t<5)){

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

    }else{

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

    }

    return sum;

}

int main()

{

    float total,sum1, sum2;

    sum1=money(12,9);

    sum2=money(12,18);

    total=sum1+sum2;

    printf("小明打车费用为:%.2f\n",total);

    return 0;

}

运算结果:68.00


慕标122149
浏览 1216回答 1
1回答

望远

因为money函数定义的返回值类型为int,在sum返回的时候被强转了,损失了精度。
随时随地看视频慕课网APP
我要回答