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

为什么结果为69.400002 最后的2是怎么来的

#include <stdio.h>

float CostComputer(int time ,int distance);

int main()

{

   float Sum_day=0;

    Sum_day=CostComputer(9,12)+CostComputer(18,12);

    printf("小明每天打车的总费用为%f",Sum_day);

    return 0;

}

float CostComputer(int time ,int distance)

{

    float price=2.3;

    float Sum=0;

    if(time>=23||time<5)

      price=1.2*price;

    if(distance<=3)

       Sum=13+1;

    else

       Sum=13+(distance-3)*2.3+1;

    return Sum;

}


提问者:慕粉18804621609 2016-06-25 08:47

个回答

  • qq_镜中天罚_0
    2016-06-25 11:31:15

    因为浮点数并不能完全精确的表示数据,并不能像真正算术那样得出最准确的数据,只能在很大程度上接近真实结果

  • 麦田守望123
    2016-06-25 10:51:43

    将float改为double就好了

  • 决心_
    2016-06-25 10:40:36

     printf("小明每天打车的总费用为%f",Sum_day);

    将此行代码改为 printf("小明每天打车的总费用为%.5f",Sum_day); 可以将小数点最后一位的2省去