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

来源:5-14 综合练习

慕粉18804621609

2016-06-25 08:47

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

}


写回答 关注

3回答

  • 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省去

C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题